我已经将Java程序导出到了一个可运行的jar文件中,除了一些方法外,它的效果很好。当我使用苹果的方法时..
System.setProperty("apple.laf.useScreenMenuBar", "true");
..和..
Toolkit.getDefaultToolkit().getDesktopProperty("apple.awt.contentScaleFactor");
..它们可以在Eclipse中运行,但不要在可运行的jar中运行。我该如何解决?
最佳答案
很难从片段中了解原因,但是,根据Java Runtime System Properties,您可以将它们作为Java命令的一部分传递,
java -Dapple.laf.useScreenMenuBar="true" com.example.yourApp
或将它们设置为
System.setProperty
的一部分,但是您应该在AWT / Swing库的任何部分都可以初始化之前进行设置。在应用程序中设置属性时(使用
System.setProperty),请确保它是第一个语句之一
在您的主要方法内部制作。这样做会在AWT之前设置属性
已加载,确保其生效。
或者,您可以将应用打包为应用捆绑包,然后可以将设置作为
Info.plist
的一部分提供,如here所示