【发布时间】:2011-12-20 12:45:24
【问题描述】:
我有以下在 Windows 上运行的命令:
java -classpath lib/prov-jdk14-132.jar;../EncUtility com.xxxx.projects.disc.bowl.FileChooseApp
现在我正在使用 nano 命令在 OS X 中使用以下命令生成可执行文件:
java -classpath ../EncUtility/lib/prov-jdk14-132.jar:../EncUtility com.xxxx.projects.disc.bowl.FileChooseApp
此命令在终端中完美运行,但是当我使用 nano 命令制作实用程序时,它显示以下错误:
cp_mac1$ /Users/cp_mac1/Desktop/EncUtility/start ; exit;
Exception in thread "main" java.lang.NoClassDefFoundError: com/xxxx/projects/disc/bowl/FileChooseApp
Caused by: java.lang.ClassNotFoundException: com.xxxx.projects.disc.bowl.FileChooseApp
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:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
logout
[Process completed]
我发现它在路径中使用了额外的/start。但即使使用cd ..,我也无法解决它
【问题讨论】:
-
在您的 Windows 命令中,您有 /Users/cp_mac1/Desktop/EncUtility/Bowl,而在您的 MacOS 版本中,您只有 ../EncUtility;那不应该是../EncUtility/Bowl吗?
-
不,我也注意到了……但它在终端中工作正常……
-
我认为这与 Objective C 没有任何关系,请在您发布的示例中将您雇主的名字从类路径中删除。没有人应该在每年的这个时候被解雇。哦,这是一个类路径问题。我看到您在第二个示例中传递了相对路径。也许就是这样。
-
@TimKemp 谁会因此被解雇?
-
@DaveNewton 他在华尔街一家银行的秘密部门工作,如果发现离岸开发人员正在世界上最受欢迎的编程网站上宣传他们继续使用 Java 1.4,他会非常高兴。他的合同很可能禁止这种事情。虽然我同意他不太可能因此而被解雇,但在他选择的领域中,谨慎一点会大有帮助。不管怎样,我已经为他做到了。
标签: java macos executable