【发布时间】:2023-03-27 04:40:02
【问题描述】:
我们正在尝试使用 java webstart 开发打印应用程序。我们使用 eclipse 将 jar 创建为普通的 jar 文件。我们的应用程序需要外部库来连接数据库,将数据转换为字节等。
我们之前可以通过将必要的 jars 放在 jre 文件夹的 /ext/ 目录中来做到这一点。然而,这导致了与我们的 tomcat 服务器的库冲突,因此我们希望避免这种方法。
我们还尝试将项目导出为可运行的 jar,因为所需的库也已打包在 jar 中。但是在尝试运行应用程序时,它似乎无法看到 jar 中的库。
我们也知道,我们可以将需要的库放在jar旁边的一个文件夹中,并在jnlp文件中一一引用。但是我们想避免这种方法,因为我们有很多外部 jar,我们不想一个一个地导入它们:)
所以我的问题是我们如何正确打包 java webstart jar?还有其他方法吗?最好的方法是什么?
请参阅下面的 jnlp 文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="http://192.168.1.169/webstart/" href="launch.jnlp" spec="1.0+">
<information>
<title>PrinterWebStart</title>
<vendor>robert</vendor>
<homepage href=""/>
<description>PrinterWebStart</description>
<description kind="short">PrinterWebStart</description>
</information>
<update check="always"/>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.5+"/>
<jar href="printer-base.jar" main="true"/>
</resources>
<application-desc main-class="com.ccti.printer.task.PrinterTaskPanel">
</application-desc>
</jnlp>
【问题讨论】:
-
“但是我们想避免这种方法,因为我们有很多外部 jar,我们不想一个一个地导入它们:)”最好的方法。例如。它支持应用程序的延迟下载。组件,以及可能很小(以字节为单位)的组件更新。您为什么要以其他方式进行操作?
-
嗨!我们认为如果需要的外部库也打包在 jar 中会更好。如果将它们放在外部文件夹中是最好的方法,那么我们将实现这一点。感谢您的回复!
-
"Java Web Start 不支持清单文件中的
Class-Path条目。"—FAQ
标签: java jar jnlp java-web-start