Java/OS X 狮子 : Setting application name stopped working with JDK1. 7

标签 java macos swing osx-lion java-7

到目前为止,我使用以下代码在我的 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();
        }
    });
}
}

感谢您的建议!

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

最佳答案

似乎使用 -D 设置属性可以解决问题。

java -Dapple.laf.useScreenMenuBar=true …

此相关 answer 中提到了其他方法.

关于Java/OS X 狮子 : Setting application name stopped working with JDK1. 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10702463/

相关文章:

macos - 无法在 Mac 上注册 Apple 推送通知服务

java - 通用路径曲线到

java - 无法将 JTextField 添加到 Java 框架

java - Swing 应用程序阻止写入文件

java - 在 maven-release-plugin 生成的标签中指定日期

java - Cytoscape.js - 如何显示 Java 中生成的节点

Java游戏: Shooting Bullets

java - 无法在我的本地计算机上设置hadoop

jquery - 捆绑 jquery-rails 失败并出现错误?

java - JTabbedPane 自定义选项卡外观