[英]run java from terminal that depend on external libraries
我已经读了很多书,但是还没有找到解决方案。
我正在使用lwjgl
,它需要2个jar和一个本机库来运行: lwjgl.jar
, lwjgl_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.