【问题标题】:Eclipse: export project such that Windows and Mac can both run itEclipse:导出项目以便 Windows 和 Mac 都可以运行它
【发布时间】: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 &lt;THEJARFILE.jar&gt;,它会运行吗?
  • JAR 可在 Mac 和 Windows(以及 Linux)之间移植,您可以使用本机包装器生成一个 .exe(在 Windows 上)来执行您的 Jar,有些是轻型包装器,需要您部署 jar 和 exe 文件,有些很胖,将 jar 嵌入其中。您也可以根据需要将应用打包到 Mac App 包中
  • MadProgrammer,这就是为什么我认为 JAR 文件最好。
  • SWT 使用原生组件。
  • 好吧,现在我很困惑。我是否必须在 Mac 分区上创建一个 Mac 可执行文件,然后转到 Windows 分区并创建一个 Windows 可执行文件?就像我说的,我对 Eclipse 还有些陌生。

标签: java windows eclipse macos


【解决方案1】:

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

jar -XstartOnFirstThread -jar xxxx.jar

SWT 应用程序还有一个本地库,每个平台都不同。

【讨论】:

    猜你喜欢
    • 2016-03-20
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多