0

我有一个 GUI 软件,它也使用内置的 java apple API,问题是我希望它同时在 Windows 和 OSX 上运行,但在我使用它的功能上运行,如下所示:

import com.apple.eawt.Application;

 try{//if osx

     Application.getApplication().setDockIconImage(
        new ImageIcon(url).getImage());
    }catch(Exception e){}

即使它在 try/catch 上,它仍然抛出 ClassNotFoundException 有没有办法解决这个问题?

4

1 回答 1

1

您需要确保代码不会在非 Mac 系统上运行。例如:

String osType = System.getProperty("os.name").toLowerCase();
if (osType.indexOf("mac") >= 0) {
    Application.getApplication().setDockIconImage(new ImageIcon(url).getImage()); 
}

删除import和完全限定Application或将其全部移动到仅在这种情况下加载的单独类。例如:

if (osType.indexOf("mac") >= 0) {
    new MyMacSpecificStuff();
}

这将在运行时修复问题。如果您还需要它在 Windows 上编译,则需要为这些 Mac OS X 类使用存根。有关详细信息,请参见此处。

于 2013-05-20T18:40:37.477 回答