Java Applet - 如何确定客户端计算机上是否存在外部 jar 文件

标签 java applet

下午好

我正在寻找一种可靠的方法来确定客户端计算机上是否存在外部 jar,谁将使用我的 java 小程序。现在我正在做的是伪代码

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 崩溃,请下载建议的安装文件”,但是我更喜欢一个编程解决方案,而这正是你们参与的地方:)

提前感谢您的所有回答。

/杰布

最佳答案

您可以检查类路径中是否存在该 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 中的类本身可能依赖于其他类...您必须决定如何处理这种情况。

关于Java Applet - 如何确定客户端计算机上是否存在外部 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7647605/

相关文章:

java - maven:无法使预集成阶段工作

Java 6 file.exists() 和 file.isFile() 莫名其妙地失败

java - Spring-MVC & Android : Server gets a empty JSON string from android

Java 签名小程序无法在浏览器上运行

java - 如何绕过 Gradle 4.5 的 SSL 验证?

java - 在BACKGROUND中通过android AlarmClock类设置闹钟

JavaFX 从网页分离

java - 有谁知道 Slick 2D lib 的任何好的教程?

java - 在我的 Java Applet 中绘制此图像不起作用

浏览器中的 java.lang.reflect.invokingtargetException