我已经将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所示

10-04 12:24
查看更多