8

迄今为止,我使用以下代码在我的 Apple MacBook 上设置应用程序名称(在顶部的“系统”菜单栏中)。(实际上,我想我是从 stackoverflow 复制的。)

基本上,有一个单独的 AppLauncher 类,它使用 System.setProperty() 在为应用程序本身创建新的 Runnable 之前设置应用程序名称。

工作得很好。

但是,自从我下载并开始使用 JDK 1.7 后,该解决方案停止工作 - 我在菜单中获得了类名称而不是应用程序名称,就像在我找到该解决方案之前一样。我尝试用谷歌搜索它,但无济于事。

这是过去在 JDK 1.6 下工作的已失效代码,已简化为相关部分:

public class AppLauncher {
public static void main(String[] args) {

    System.setProperty("apple.laf.useScreenMenuBar", "true");
    System.setProperty("com.apple.mrj.application.apple.menu.about.name",
                "My Application");
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            new MainWindow();
        }
    });
}
}

感谢您的建议!

ETA:使用 java -Dapple.laf.useScreenMenuBar=true 调用仍然有效。将属性放入 Info.plist 可能会起作用,但我还没有尝试过。

4

2 回答 2

2

似乎设置属性 using-D解决了这个问题。

java -Dapple.laf.useScreenMenuBar=true …

此相关答案中提到了其他方法。

于 2012-05-30T20:53:30.847 回答
1

我无法使用 Info.plist 或 -D 方法(我正在分发一个 JRuby 应用程序,这可能与它有关),但对我来说,传递本文-Xdock:name中提到的参数部分“更多修改菜单栏”似乎效果很好。

例子:-Xdock:name="My Application"

于 2013-06-25T20:45:12.593 回答