Re: [問題] command Line 打包jar檔與執行
謝謝darkk6的解答
當我把 Lib資料夾打包起來的jar檔就可以直接執行
但我做了另一個測試,我想做另一個UseJar的class去使用TestJar的function
所以我把test.jar放到
D:\java\workspace\testProject\Lib\show\test.jar
[UseJar.java]
D:\java\workspace\testProject\UseJar.java
/*=============================================*/
import Lib.show.TestJar;
class UseJar{
public static void main(String[] args) {
TestJar objHiJava = new TestJar();
objHiJava.hiJava("UseJar");
}
}
/*==============================================*/
[編譯指令]
D:\java\workspace\testProject>
javac -cp D:\java\workspace\testProject\Lib\show\test.jar UseJar.java
產生UseJar.class
[執行指令]
D:\java\workspace\testProject>
Case1)
java UseJar
出現錯誤
Exception in thread "main" java.lang.NoClassDefFoundError: Lib/show/TestJar
at UseJar.main(UseJar.java:4)
Caused by: java.lang.ClassNotFoundException: Lib.show.TestJar
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
我想應該是沒有指定classpath,所以我試了另一個方法
Case2)
java -cp D:\java\workspace\testProject\Lib\show\test.jar UseJar
出現錯誤(錯誤: 找不到或無法載入主要類別 UseJar)
還是不行,但不知道為什麼這樣指定jar檔不行,又找了資料,試了第三種方法
Case3)
java -cp .;Lib\show\test.jar UseJar
居然可以執行正確結果
我不懂我已經指定絕對路徑的Jar檔(case2),為何不行
case3多了一個'.'當前目錄的指定,就可以執行
環境變數的CLASSPATH=".;D:\java\workspace\testProject\"
誤打誤撞雖然結果正確,但卻不知所以然
麻煩各位糾正我錯誤的觀念,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.10.0.99
※ 文章網址: http://www.ptt.cc/bbs/java/M.1418270968.A.54A.html
※ 編輯: JGC18 (39.10.0.99), 12/11/2014 12:11:39
※ 編輯: JGC18 (39.10.0.99), 12/11/2014 12:12:28
→
12/11 13:06, , 1F
12/11 13:06, 1F
→
12/11 13:07, , 2F
12/11 13:07, 2F
→
12/11 13:07, , 3F
12/11 13:07, 3F
→
12/11 13:08, , 4F
12/11 13:08, 4F
→
12/11 17:39, , 5F
12/11 17:39, 5F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章