2012-07-21 58 views
2

我從一個dacapo基準罐中提取文件。從jar中提取文件後,如何重新將它們重新組合成一個有效的jar?

jar -xf dacapo-2006-10-MR2.jar 

然後,我得到了這個文件夾

dacapo-2006-10-MR2 

我試圖以這種方式一起重新組合它們:

jar cmf dacapo-2006-10-MR2/META-INF/MANIFEST.MF my-dacapo.jar dacapo-2006-10-MR2 

但是當我試圖用新的jar我得到了一個錯誤:

java -jar my-dacapo.jar -s small antlr 

Exception in thread "main" java.lang.NoClassDefFoundError: Harness 
Caused by: java.lang.ClassNotFoundException: Harness 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
Could not find the main class: Harness. Program will exit. 

我不是家人與jar文件分享。任何人都可以幫我一個忙嗎?謝謝!

@Bohemian看來你的解決方案不會在這裏工作,請參見下面

> zip -r my-dacapo dacapo-2006-10-MR2 
> mv my-dacapo.zip my-dacapo.jar 
> java -jar my-dacapo.jar -s small antlr 

Invalid or corrupt jarfile my-dacapo.jar 

還是要謝謝你。

回答

2

一個罐子就是用「的.jar」的延伸

拉上你的文件,並重新命名.zip.jar

0

首先是去到文件所在的解壓縮目錄中的壓縮文件。然後寫命令。

罐子CVF(類ü要插入)。類(或其中U要插入的文件夾)

如果你使用Eclipse就會生成可執行的JAR文件

0

,那裏你可以得到你的罐子通過遵循以下stepscreate manifest

你也可能需要閱讀this(你可以在manifest文件沒有定義主類)

0

jar工具提供了u選項,您可以通過修改其清單或添加文件來更新現有JAR文件的內容。

添加文件的基本命令具有以下格式:

罐UF JAR-文件輸入文件(S)

在此命令:

  • ù選項表示您要更新現有的JAR 文件。

  • ˚F選項表示JAR文件來更新指定了命令行上

  • jar-file是要更新的現有JAR文件。

  • 輸入文件是要添加到JAR文件中的一個或多個文件的空格分隔列表。

任何在具有相同的路徑名添加一個文件歸檔已經文件將被覆蓋。

更多詳細信息:https://docs.oracle.com/javase/tutorial/deployment/jar/update.html

相關問題