从依赖外部库的终端运行java

时间:2012-09-04 16:47:31

标签: java linux terminal lwjgl

我已经阅读了很多,但还没有找到解决方案。

我正在使用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终端。 另外,我认为这在日食中运行得非常好,所以我真的不明白这里有什么。

4 个答案:

答案 0 :(得分:4)

首先,你只需要将类名传递给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脚本中。祝你好运!

答案 1 :(得分:1)

尝试脱掉“.class”,例如

  

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

会变成:

  

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

通过添加“.class”,您告诉命令您在名为“DisplayTest”的目录中有一个名为“class”的类,这不是您想要实现的目标。这显示在这一行:

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

答案 2 :(得分:0)

触发java命令时使用-cp或-classpath。只需输入java命令即可​​查看用法

答案 3 :(得分:0)

我也遇到了类似的错误。

只需包含您的工作目录(您拥有自己的类),以及运行时类路径中所需的库。

当机器在运行时无法找到NoCLassDefFoundError文件时发生

.class(即使它们已被编译,即它在编译时不会给出错误但仅在运行时期间)

第1步:编译   javac -classpath" path / to / lib1:path / to / lib2" yourfile.java 第2步:运行  java - classpath" path / to / lib1:path / to / lib2:path / to / your / currentdirectory / wherethedotclass / filearecreated /" yourfile