簡體   English   中英

能夠編譯但無法使用jar文件從cmd運行Java

[英]Able to compile but unable to run Java from cmd with jar files

我有一個使用jfreechart庫的java文件,使用本地驅動器中的文本文件並顯示圖形。 用日食運行很好。 但是,我想從cmd提示符運行它,其他簡單的Java文件能夠通過cmd prmnt成功運行但無法運行此文件。 PS:MyTool.java能夠無錯誤地編譯並創建類文件,但無法運行。


 1) This is how I am compiling it in cmd prompt: (gives 0 errors)

C:\Documents and Settings\hello.maga\workspace\MyTool\lib>javac -cp "gnujaxp.
jar;iText-2.1.5.jar;jcommon-1.0.16.jar;jfreechart-1.0.13.jar;jfreechart-1.0.13-e
xperimental.jar;jfreechart-1.0.13.jar;junit.jar;servlet.jar;swtgraphics2d.jar" MyTool.java

  2) This is how I am running it:


 C:\Documents and Settings\hello.maga\workspace\MyTool\lib>java -cp "gnujaxp.j
 ar;iText-2.1.5.jar;jcommon-1.0.16.jar;jfreechart-1.0.13.jar;jfreechart-1.0.13-ex
 perimental.jar;jfreechart-1.0.13.jar;junit.jar;servlet.jar;swtgraphics2d.jar" MyTool


    Error for second command: 

    Exception in thread "main" java.lang.NoClassDefFoundError: MyTool
    Caused by: java.lang.ClassNotFoundException: MyTool
    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)
    Could not find the main class: MyTool.  Program will exit.

我不明白的是,如果有任何錯誤,那么它不應該首先編譯,有人可以教育我。 非常感謝你。

你需要包含“。” 在類路徑中,如下所示:

java -cp ".;gnujaxp.jar;iText-2.1.5.jar;jcommon-1.0.16.jar;jfreechart-1.0.13.jar;jfreechart-1.0.13-experimental.jar;jfreechart-1.0.13.jar;junit.jar;servlet.jar;swtgraphics2d.jar"

從“ 設置類路徑 ”:“類路徑告訴SDK工具和應用程序在哪里可以找到第三方和用戶定義的類 - 即不是Java擴展或Java平台的一部分的類。類路徑需要找到你用javac編譯器編譯的任何類 - 它的默認值是當前目錄,可以方便地找到這些類。“

但是,如果您自己設置類路徑,則默認不再適用,並且您希望它從當前目錄加載類。 您必須手動添加它,例如添加“。” 如Ed Staub推薦的那樣。

在編譯時,類路徑上不需要您的類,可以這么說,因為它是正在編譯的。 您只需要類路徑上的所有其他類(在jar文件中)。 這就是為什么你能夠編譯但不能運行,即使你為這兩個操作使用了相同的類路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM