2015-10-20 49 views
0

我從eclipse中導出了一個jar文件,並在jar文件中導出了包含java類文件的各種包和子包。在Windows命令行的jar文件中的子包中運行一個類

我想在Windows中的命令行上運行這些嵌套類文件之一。

類有主,我使用下面的嘗試運行它,

java -classpath .;./example.jar example

注意的例子是類的名稱以及罐子。

我還試圖拼出類

java -classpath .;./example.jar the.whole.path.example

如何運行的例子類的全路徑?

編輯:

好了,這是一種愚蠢的,完整的路徑是不正確的。我經過無數次檢查,但只有當我回到它時,我才注意到這個錯誤。

+0

最後與.whole.path.example看起來正確。當你這樣稱呼時會發生什麼? – Marged

+0

@已收集。它不會運行。我很可能錯過了一些其他的依賴關係。 – Ares

+0

這是命令的輸出嗎? 'java不會運行'? – Marged

回答

1

沒有看到任何代碼或任何輸出(提示,暗示),它是很難說發生了什麼,但是這對我的作品:

$ cat x/y/z/A.java 
package x.y.z; 

public class A 
{ 
    public static void main(String args[]) throws Exception 
    { 
     System.out.println("here in A"); 
    } 
} 
$ javac x/y/z/A.java 
$ jar cvf a.jar x/y/z/A.class 
added manifest 
adding: x/y/z/A.class(in = 459) (out= 311)(deflated 32%) 
$ java -classpath a.jar x.y.z.A 
here in A 

而且萬一海報或某人在未來閱讀本對Unix不熟悉,以$開頭的行是我輸入到shell中的命令,其他所有內容都是從這些命令輸出的。 Eclipse會爲您處理前三項,然後最後的java -classpath a.jar x.y.z.A是執行x.y.z.A類中main方法的命令。

1

只是運行java -cp example.jar the.whole.path.example應該做的伎倆。如果沒有,那麼你的JAR文件是錯誤的。類名必須完全合格(包名),並且指定的類必須具有正確的主方法:

public static void main(String[] args) { 

} 
0

檢查您的假設是否正確。顯示你煲的結構和比較,您嘗試運行什麼:

jar tf example.jar 

如果罐子中含有大量的條目,你可能想用grep /查找相關類:

jar tf example.jar | find /i "Example" 
相關問題