好的,我放弃了-我没有很多从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/