好的,我放弃了-我没有很多从cmd行运行Java的XP,而且我已经有一段时间了,尝试了无止境的组合,但我很沮丧,所以我们开始吧。

我需要从cmd行运行一个简单的Java应用程序(依赖于一堆jar,然后依赖于某些本机库)-当我尝试运行以下命令时,我位于bin文件夹中:

java -Djava.library.path="../lib" -cp ../jar;. MyMainClass

不管订单如何(我都知道订单很重要!),这都不起作用,并且会出现不同的错误。

例如,我上面粘贴的版本为我提供了cmd行参数的列表,其后是:
-bash: myMainClass: No such file or directory

但是MyMainClass.class在我正在从中运行内容的bin文件夹中。

如果我尝试这样做:
java -Djava.library.path="../lib" AlphaHHKernel_Tuning_Test -cp ../jar;.

我得到:
Exception in thread "main" java.lang.NoClassDefFoundError: MyMainClass
Caused by: java.lang.ClassNotFoundException: MyMainClass
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
-bash: .: filename argument required
.: usage: . filename [arguments]

我想了解应该如何使用这些属性(并使其在过程中正常工作)。

最佳答案

在Unix中,请使用:分隔符指定类路径,而不是在Windows中指定;:-cp ../jar:.
另外,您需要指定每个jarfile,而不仅仅是给它一个充满jar的目录。

关于java - 如何从带有类路径和 native 库的cmd行运行Java程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6406056/

10-11 15:33
查看更多