2013-02-10 70 views
0

我剛開始使用我的第一個Java程序。我創建了一個批處理文件來運行我的命令行參數。在這個項目中,我寫的「HelloWorld」字符串HelloWorld.java使用java編輯清單

class HelloWorld 
{ 
public static void main(String [] args) 
{ 
    System.out.println("HelloWorld!!"); 
} 
} 

現在我後添加的Java到我的路我使用.bat文件以下。

javac HelloWorld.java //to complie 
java HelloWorld //toRun 
jar -cvf HelloWorld.jar HelloWorld.class //creating a archive 
jar -xf HelloWorld.jar //Extracting and finding the manefest 

從我的jar文件我現在有編輯清單文件,並設置我剛纔寫我的JAR文件主類的類,我已經做了如下:

jar -cmf HelloWorld.jar Manifest.txt HelloWorld.class //Here is the problem 
java -jar HelloWorld.jar //here I am trying to run it 
pause 

我似乎不能編輯清單。我有命令提示錯誤還是錯誤輸入了某些內容?

+0

Manifest.txt是否存在於磁盤上?如是。它是否至少包含以下條目: Main-Class:HelloWorld – 2013-02-10 21:13:42

+0

您是否嘗試過使用jar命令的詳細輸出選項'-v'? 此外,我相信你不需要在修改清單前提取jar。 最後但並非最不重要的,嘗試不同的選項順序,如下所示:'-cfm' – derabbink 2013-02-10 21:47:08

回答

0

Manifest是META-INF目錄中名爲「MANIFEST.MF」的文件。所以,你需要在文件系統上看到你的最終代碼如下:

HelloWorld.class 
WEB-INF 
    MANIFEST.MF 

然後把整個的jar。

最後,你也應該把你的HelloWorld.class在一個實際的包:

package pkg; 

public class HelloWorld { 
    public static void main(String args[]) { 
     System.out.println("Hello World!"); 
    } 
} 

那麼你的最終產品將是這樣的:

pkg 
    HellowWorld.class 
META-INF 
    MANIFEST.MF 

而且你的最後一類的名字將是pkg.HelloWorld

事情簡單地用Java中的實際包更好地工作,最好馬上使用它們並避免麻煩。

注意:哦,我的錯誤,我沒有捕獲使用-m標誌 - 所以用於Manifest只是構建工件的一部分的大型項目。