下午好。
我正在寻找一种可靠的方法来确定客户端计算机上是否存在外部jar,谁将使用我的java applet。现在我正在做的是伪代码
try
{
controller.init()
}
catch Exception(Jar does not exist)
{
make pretty screen to tell users to download setup file
fire up browser with link to setup file
}
然而,抛出的异常是UnsatisfiedLinkError,我无法捕捉到它,因为它不是可以恢复的东西。这基本上意味着我“离开”了一个浏览器窗口,其中包含设置文件的链接,但没有解释它为什么会出现。
当然,“简单”修复只是添加到托管小程序的html页面“如果Java爆炸,请只下载建议的安装文件”,但我更喜欢一个程序化的解决方案,在这里,你们和女孩们进入了画面:)
提前感谢任何和所有答案。
/杰布
答案 0 :(得分:1)
您可以检查jar路径是否存在于类路径中(System.getProperty("java.class.path")
)。
另一种方法是查看是否可以加载类文件资源。假设您要加载com.thirdparty.SomeClass
。然后,在调用controller.init()
的任何一个类中,您都可以尝试
<击> this.getClass()。getCloassLoader.findResource( “com.thirdparty.SomeClass.class”)击>
this.getClass().getClassLoader().getResource("com.thirdparty.SomeClass.class")
如果返回值不为null,那么类加载应该有希望成功。
当然,jar中的类本身可能依赖于其他类......你必须决定如何处理这种情况。