2012-05-22 29 views
8

我迄今使用以下代码来设置我的Apple MacBook上的应用程序名称(位于顶部“系统”菜单栏中)。 (实际上,我认为我是从stackoverflow复制的。)Java/OS X Lion:设置应用程序名称停止使用JDK1.7

基本上,有一个独立的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可能有效,但我还没有尝试过。

+0

任何运气'-D'或'Info.plist',示出在[此处](http://stackoverflow.com/a/8956715/230513)?它可能在OpenJDK中不受支持。 – trashgod

+0

嗨,是的,-D似乎在伎俩。我会将Info.plist保存在我的脑后,并在我到达后尝试一下,谢谢。 –

+0

@trashgod:您应该将其添加为答案,以便问题可以留下“未答复”列表。 – wchargin

回答

2

看来使用-D设置属性可以解决问题。

java -Dapple.laf.useScreenMenuBar=true … 

其他方法在此相关的answer中提及。

1

我无法获得Info.plist或-D方法的工作(我正在分发JRuby应用程序,可能与它有关),但对于我传递-Xdock:name参数如上所述this article下的“更多修补菜单栏”部分似乎很好。

实施例:-Xdock:name="My Application"

相关问题