Mac OS上的类路径错误

时间:2014-03-30 17:36:14

标签: java macos classpath

我创建了一个Java应用程序,它使用java -cp "xxx.jar;xxx.jar" net.minecraft.client.main.Main命令运行另一个Java代码。类路径的两个JAR之间的;(或:取决于操作系统)由System.getProperty("path.separator")函数提供。

在Windows上它可以正常工作,但在Mac OS上则不行。 Java表示无法找到或加载主类net.minecraft.client.main.Main。我查了一下,类路径的JARS拼写正确并存在于硬盘驱动器的正确路径上。

这是整个命令(/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java是Java可执行文件的路径):

http://pastebin.com/8V3pg07q

你可以帮帮我吗?我不需要有关如何玩Minecraft的帮助,它不是官方发射器(它是我制作的,显然不能在Mac OS上运行),所以不要告诉我在Minecraft论坛上寻求帮助:P

谢谢!

1 个答案:

答案 0 :(得分:1)

我不清楚你的意思"我测试了强制使用;即使在Mac OS"但基本上,当您运行新的Java进程时,应该为平台使用正确的路径分隔符。

所以在Windows上你想要:

java -cp xxx.jar;yyy.jar

在Unix上,你想要

java -cp xxx.jar:yyy.jar

在您构建命令行参数的代码中,只需确保使用path.separator属性(或更简单地File.pathSeparator),以便您可以构建正确的命令行无需检测实际的操作系统。

编辑:我不知道为什么现在不适合你,除非是因为命令行本身太长了。

您可以考虑将所有相关的jar文件放入一个目录中,然后使用:

java -cp 'somedirectory/*' net.minecraft.client.main.Main

有代表性地使用extensions mechanism ......但这是最后的手段,可能会导致其他问题。