【发布时间】:2017-08-04 06:11:48
【问题描述】:
我刚刚完成了一个新的 Java 应用程序的编码,我想将它导出为可以在 Windows 和 Mac 上读取的格式(或者,如果需要,可以使用两种单独的格式)。我尝试右键单击我的项目并导出到可运行的 JAR 文件,选择将所需的库提取到生成的 JAR 中。
由于我以前从未从 Eclipse 导出(我习惯于 Unity,在较小程度上习惯于 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)
【问题讨论】:
-
你是如何尝试“打开它”的?如果你执行
java -jar <THEJARFILE.jar>,它会运行吗? -
JAR 可在 Mac 和 Windows(以及 Linux)之间移植,您可以使用本机包装器生成一个 .exe(在 Windows 上)来执行您的 Jar,有些是轻型包装器,需要您部署 jar 和 exe 文件,有些很胖,将 jar 嵌入其中。您也可以根据需要将应用打包到 Mac App 包中
-
MadProgrammer,这就是为什么我认为 JAR 文件最好。
-
SWT 使用原生组件。
-
好吧,现在我很困惑。我是否必须在 Mac 分区上创建一个 Mac 可执行文件,然后转到 Windows 分区并创建一个 Windows 可执行文件?就像我说的,我对 Eclipse 还有些陌生。
标签: java windows eclipse macos