缺少内置java api时发生ClassNotFound异常
我有一个GUI软件,它也使用内置的java apple API, 问题是我希望它同时在windows和OSX上运行,但在我使用它的函数上运行,如下所示:缺少内置java api时发生ClassNotFound异常,java,windows,macos,cross-platform,Java,Windows,Macos,Cross Platform,我有一个GUI软件,它也使用内置的java apple API, 问题是我希望它同时在windows和OSX上运行,但在我使用它的函数上运行,如下所示: import com.apple.eawt.Application; 及 它仍然抛出ClassNotFoundException,即使它处于try/catch状态 有办法解决吗?您需要确保代码不会在非Mac系统上运行。例如: String osType = System.getProperty("os.name").toLowerCase()
import com.apple.eawt.Application;
及
它仍然抛出ClassNotFoundException,即使它处于try/catch状态
有办法解决吗?您需要确保代码不会在非Mac系统上运行。例如:
String osType = System.getProperty("os.name").toLowerCase();
if (osType.indexOf("mac") >= 0) {
Application.getApplication().setDockIconImage(new ImageIcon(url).getImage());
}
if (osType.indexOf("mac") >= 0) {
new MyMacSpecificStuff();
}
要么删除导入
并完全限定应用程序
,要么将其全部移动到一个单独的类中,该类仅在这种情况下加载。例如:
String osType = System.getProperty("os.name").toLowerCase();
if (osType.indexOf("mac") >= 0) {
Application.getApplication().setDockIconImage(new ImageIcon(url).getImage());
}
if (osType.indexOf("mac") >= 0) {
new MyMacSpecificStuff();
}
这将在运行时修复问题。如果您还需要在Windows上编译,则需要为这些MacOSX类使用存根。有关这方面的更多信息,请参阅。jar是否在您的类路径上?如果您捕获了
异常,然后什么也不做,您如何判断它是否抛出了ClassNotFoundException
?我可以向您保证,代码不会抛出该异常。我在控制台上看到异常,它的ClassNotFoundException和它没有捕获它,因为它从这一行抛出并打印到控制台,不需要在windows上编译,但我真的按照你说的做了,我把所有的东西都移到了另一个类,它仍然没有帮助,我现在试试if…我觉得很愚蠢。。。当它是一个简单的if….时,试图用try/catch过度杀死它。。。。