簡體   English   中英

從依賴於外部庫的終端運行Java

[英]run java from terminal that depend on external libraries

我已經讀了很多書,但是還沒有找到解決方案。

我正在使用lwjgl ,它需要2個jar和一個本機庫來運行: lwjgl.jarlwjgl_util.jar和本機庫。 無論如何,我已經盡我所能嘗試了所有方法,現在我正在嘗試使用以下命令:

java - Djava.library.path="libs/natives/" -cp libs/jars/lwjgl.jar:libs/jars/lwjgl_util.jar DisplayTest.class

但我嘗試通過各種方式得到:

Exception in thread "main" java.lang.NoClassDefFoundError: DisplayTest/class
Caused by: java.lang.ClassNotFoundException: DisplayTest.class
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: DisplayTest.class. Program will exit

哦,也許值得一提的是,我正在Linux終端上工作。 另外,我使它在日食中運行得很好,所以我真的不明白這里發生了什么。

首先,您只需要將類名傳遞給java:

java -Djava.library.path="libs/natives/" 
     -cp libs/jars/lwjgl.jar:libs/jars/lwjgl_util.jar DisplayTest

(換行符以提高可讀性)

我會嘗試以下方法:

1)使用CLASSPATH環境變量,如下所示:

  CLASSPATH=.:/path/to/lwjgl/lwjgl.jar:/path/to/lwjgl/lwjgl_util.jar 
  export CLASSPATH

注意類路徑最開始的點(。);

2)運行您的Java應用程序:

  java -Djava.library.path="libs/natives" DisplayTest

如果可行,請將以上命令添加到Shell腳本中。 祝好運!

嘗試脫掉“ .class”,例如

java -Djava.library.path =“ libs / natives /” -cp libs / jars / lwjgl.jar:libs / jars / lwjgl_util.jar DisplayTest.class

會成為:

java -Djava.library.path =“ libs / natives /” -cp libs / jars / lwjgl.jar:libs / jars / lwjgl_util.jar DisplayTest

通過添加“ .class”,您告訴命令您在名為“ DisplayTest”的目錄中具有一個名為“ class”的類,而這並不是您要實現的目標。 這行顯示:

Exception in thread "main" java.lang.NoClassDefFoundError: DisplayTest/class

觸發Java命令時,請使用-cp或-classpath。 輸入僅java命令以查看用法

我也遇到類似的錯誤。

只需在運行時將工作目錄(在其中擁有自己的類)以及所需的庫包括在內。

當計算機在運行時無法找到您的.class文件時(即使它們已編譯,即僅在運行時也不會給出錯誤),會發生NoCLassDefFoundError

步驟1:編譯javac -classpath“ path / to / lib1:path / to / lib2” yourfile.java步驟2:運行Java-類路徑“ path / to / lib1:path / to / lib2:path / to / your / currentdirectory / wheredotdotclass / filecreated /“ yourfile

暫無
暫無

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

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