Java程序可以在Windows上运行,但不能在Mac上运行

Java程序可以在Windows上运行,但不能在Mac上运行,java,command-line,Java,Command Line,我为一个朋友做了一个小程序,当我在我的Windows机器上运行它时,它运行得很好。然而,当我在他的电脑上运行时,我发现 Exception in thread "main" java.lang.NoClassDefFoundError: SupplierControl/jar Caused by: java.lang.ClassNotFoundException: SupplierControl.jar at java.net.URLClassLoader$1.run(URLClassL

我为一个朋友做了一个小程序,当我在我的Windows机器上运行它时,它运行得很好。然而,当我在他的电脑上运行时,我发现

Exception in thread "main" java.lang.NoClassDefFoundError: SupplierControl/jar
Caused by: java.lang.ClassNotFoundException: SupplierControl.jar
    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)
不知道为什么它会在一个而不是另一个上起作用


谢谢

我打赌您正在尝试使用如下命令运行它:

java SupplierControl.jar
请注意,传递给
java
命令的必须是完全限定的类名。发生的情况是,Java将在包
SupplierControl
中查找名为
jar
的类。你不是这个意思

如果它是一个可执行的JAR,那么使用以下命令运行它:

java -jar SupplierControl.jar

我打赌您正在尝试使用如下命令运行它:

java SupplierControl.jar
请注意,传递给
java
命令的必须是完全限定的类名。发生的情况是,Java将在包
SupplierControl
中查找名为
jar
的类。你不是这个意思

如果它是一个可执行的JAR,那么使用以下命令运行它:

java -jar SupplierControl.jar

问题在于命令的运行方式。假设它是一个“可执行”JAR文件,您应该以以下方式运行它:

$ java -jar SupplierControl.jar
但是您似乎遗漏了
-jar
参数



如果省略
-jar
,则
java
命令将
SupplierControl.jar
解释为限定类名;i、 e.包“SupplierControl”中名为“jar”的类。当然,它找不到相应的“.class”文件。。。结果会出现一个
NoClassDefFoundError

问题在于命令的运行方式。假设它是一个“可执行”JAR文件,您应该以以下方式运行它:

$ java -jar SupplierControl.jar
但是您似乎遗漏了
-jar
参数



如果省略
-jar
,则
java
命令将
SupplierControl.jar
解释为限定类名;i、 e.包“SupplierControl”中名为“jar”的类。当然,它找不到相应的“.class”文件。。。结果会得到一个
NoClassDefFoundError

您应该使用命令运行它

$ java -jar SupplierControl.jar

然后您正在执行jar,一切都应该正常。

您应该使用命令运行它

$ java -jar SupplierControl.jar

然后您正在执行jar,一切都应该正常。

错误消息指出您缺少库。您能告诉我们您在Mac和Windows中是如何运行的吗?该错误表明java认为jar文件是要运行的类的名称,而不是用-jar或类路径指定的类文件的容器。该程序是jar文件吗?您是从控制台还是通过文件资源管理器启动它?我在dropbox中有dist文件夹,然后在windows中双击它,然后在mac中尝试双击,但由于它不起作用,我执行了终端操作,从中得到了错误您缺少库,正如错误消息所述。您能告诉我们您是如何在mac vs windows中运行的吗?该错误表明java认为jar文件是要运行的类的名称,而不是用-jar或类路径指定的类文件的容器。该程序是jar文件吗?你是从控制台还是通过文件资源管理器启动它?我在dropbox中有dist文件夹,然后在windows中双击它,然后在mac上尝试双击,但由于它不起作用,我启动了终端,从中得到了错误