Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse:导出项目,使Windows和Mac都可以运行它_Java_Windows_Eclipse_Macos - Fatal编程技术网

Java Eclipse:导出项目,使Windows和Mac都可以运行它

Java Eclipse:导出项目,使Windows和Mac都可以运行它,java,windows,eclipse,macos,Java,Windows,Eclipse,Macos,我刚刚完成了一个新Java应用程序的编码,我想将其导出为一种可以在Windows和Mac上读取的格式,或者,如果需要,可以导出为两种不同的格式。我尝试右键单击我的项目并导出到一个可运行的JAR文件,选择将所需的库提取到生成的JAR中 因为在我习惯Unity之前,我从未从Eclipse导出过,在较小程度上,我也习惯Visual Studio,所以我确信我做了一些错误的事情,因为它在macOS Sierra或Windows 10上都不会打开。我做错了什么?谢谢 编辑:以下是我尝试在jar文件名已被模

我刚刚完成了一个新Java应用程序的编码,我想将其导出为一种可以在Windows和Mac上读取的格式,或者,如果需要,可以导出为两种不同的格式。我尝试右键单击我的项目并导出到一个可运行的JAR文件,选择将所需的库提取到生成的JAR中

因为在我习惯Unity之前,我从未从Eclipse导出过,在较小程度上,我也习惯Visual Studio,所以我确信我做了一些错误的事情,因为它在macOS Sierra或Windows 10上都不会打开。我做错了什么?谢谢

编辑:以下是我尝试在jar文件名已被模糊的情况下运行java-jar时的输出:

***WARNING: Display must be created on main thread due to Cocoa restrictions.
Exception in thread "main" org.eclipse.swt.SWTException: Invalid thread access
    at org.eclipse.swt.SWT.error(SWT.java:4533)
    at org.eclipse.swt.SWT.error(SWT.java:4448)
    at org.eclipse.swt.SWT.error(SWT.java:4419)
    at org.eclipse.swt.widgets.Display.error(Display.java:1089)
    at org.eclipse.swt.widgets.Display.createDisplay(Display.java:840)
    at org.eclipse.swt.widgets.Display.create(Display.java:823)
    at org.eclipse.swt.graphics.Device.<init>(Device.java:129)
    at org.eclipse.swt.widgets.Display.<init>(Display.java:722)
    at org.eclipse.swt.widgets.Display.<init>(Display.java:713)
    at org.eclipse.swt.widgets.Display.getDefault(Display.java:1419)
    at myJar.MainWindow.main(MainWindow.java:19)

您似乎正在运行SWT应用程序。在macOS上,运行jar时必须指定-XstartOnFirstThread选项才能正确运行SWT:

jar-XstartOnFirstThread-jar xxxx.jar
SWT应用程序还有一个本机库,每个平台都有不同的本机库。

您是如何打开它的?如果你执行java-jar,它会运行吗?jar在Mac、Windows和Linux之间都是可移植的,你可以使用本机包装器在Windows上生成一个.exe来执行你的jar,有些是轻型包装器,需要你同时部署jar和exe文件,有些是fat,将jar嵌入其中。你也可以将应用程序打包到Mac应用程序包中,这取决于你的需求。这就是为什么我认为JAR文件最好的原因。SWT使用本机组件。好吧,现在我很困惑。我是否必须在Mac分区上创建一个Mac可执行文件,然后转到Windows分区并创建一个Windows可执行文件?就像我说的,我对Eclipse还是有点陌生。