我有一个GUI软件,它也使用内置的java apple API, 问题是我希望它在Windows和OSX上运行,但在我使用它的功能上,如下所示:
import com.apple.eawt.Application;
和
try{//if osx
Application.getApplication().setDockIconImage(
new ImageIcon(url).getImage());
}catch(Exception e){}
它仍然抛出ClassNotFoundException,即使它在try / catch上也是如此 有没有办法解决这个问题?
答案 0 :(得分: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类使用存根。有关详细信息,请参阅here。