java - 获取当前的 JNLP 信息

标签 java jnlp

我正在运行一个来自 jnlp 文件的应用程序,该文件包含有用的信息,例如供应商、描述和其他字段。

在运行时获取此数据以构建“关于”对话框的最合理方法是什么?

有没有办法检测应用程序是否在没有 Java Web Start 的情况下启动?

感谢您的帮助。

皮埃尔

最佳答案

有多种策略可以实现预期目标。我不会重新讨论那些已经提到的内容,而是概述更多内容。


1) 信息可以放在文件的 list 中。可以使用 java.lang.Package 的方法检索它类。

String title = pckg.getImplementationTitle();
String vendor = pckg.getImplementationVendor();
String version = pckg.getImplementationVersion();

Package 类还具有识别所有加载 包的能力。

Package[] package = Package.getPackages();

重复查找您的包,您可以获得当前加载的所有包的列表。

将信息放入 list 的最佳方法是使用 Ant 或一些类似的构建工具。这样就可以将版本设置为日期 - 轻松完成。


2) 将属性添加到 JNLP 的资源部分。

<resources>
    .. 
    <property name="jnlp.href" value="${href}" />
    ..
</resources>

顺便说一句 - ${href} 的使用意在表示与 JNLP href 属性使用的字符串完全相同。

使用 BasicService.getCodeBase()获取代码库的方法。 使用 .. 形成 JNLP 文件的 URL。

URL urlToJnlp = new URL(
    basicService.getCodeBase(),
    System.getProperty("jnlp.href") );

加载 JNLP 文件并使用 J2SE 的众多 XML API 之一解析它。 (如果它没有加载到 J2SE 的 XML API 中,则强烈表明它无效或格式错误 - 应使用 JaNeLA 等工具进行检查。)

加载解析后,即可获取并呈现基本信息。

关于java - 获取当前的 JNLP 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4961430/

相关文章:

javascript - 使用 applet 描述符和 javascript 在 jnlp 中轮询 applet 下载进度

java - 使用网络自动化工具时,有没有办法绕过 jnlp 文件的下载?

java - 具有可见图形的 EditPart 不在 EditPartRegistry 中 - 为什么?

java - Opengl - 极端的纹理质量损失

java - 通过数组进行索引循环并打印出元素?

javax.net.ssl.SSLHandshakeException : Remote host closed connection during handshake

java - 在 JNLP 文件中使用 JAR 参数

java - 在哪里可以找到 Java 7 的 jnlp.jar

java - 用很多分隔符分割字符串

java.lang.VerifyError : class com. intellij.junit4.JUnit4TestRunnerUtil$5 覆盖 final方法 getRunner.()Lorg/junit/runner/Runner;