当前位置: 首页 > 知识库问答 >
问题:

如何在java webstart项目中包含jar依赖项

楚雪松
2023-03-14

我们正在尝试使用java webstart开发一个打印应用程序。我们使用eclipse将jar创建为普通jar文件。我们的应用程序需要外部库来连接数据库、将数据转换为字节等。

我们以前可以通过将必要的JAR放入jre文件夹的/ext/目录来实现这一点。然而,这导致了与tomcat服务器的库冲突,所以我们希望避免这种方法

我们还尝试将项目导出为可运行的jar,因为所需的库也已打包在jar中。但是当试图运行应用程序时,它似乎无法看到jar中的库。

我们还知道,我们可以将所需的库放在jar旁边的文件夹中,并在jnlp文件中逐个引用它们。然而,我们希望避免这种方法,因为我们有很多外部罐子,我们不想逐个导入它们:)

所以我的问题是,我们如何正确地打包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>

共有1个答案

车靖琪
2023-03-14

打包web start应用程序的正确方法是在

如果您的库中有许多不同的jar文件,您可能会担心将这些文件在服务器上的最后修改日期与本地存储的版本进行比较可能会浪费一些时间。为了使此更新检查更有效,您可以在资源文件中指定版本号,从而避免不必要的更新检查。

如果JNLP需要包含签名代码,那么一次只能唱一个jar文件可能会让人感到痛苦。为了简化这个过程,请考虑下面的ant脚本,它对lib文件夹中的所有JAR进行了签名。

<target name="signLibs">
   <signjar destDir="signed"  alias="aliasName" keystore="yourKeyStoreName"
      storepass="PaSSW0rD" force="true" >
   <path>
      <fileset dir="lib" includes="*.jar" />
   </path>
   </signjar>   
   <echo message="Library files were signed."/>
</target>

 类似资料:
  • 我的项目中有以下设置... 用于SOA风格项目的多项目gradle构建,使用Rabbitmq和Spring集成连接在一起。 包含许多grails项目以及表示服务的普通java/groovy项目。 每个服务项目旁边都有一个项目(jar),其中包含可以使用Spring集成代理的服务的所有公共接口(和消息)。 这些项目使用gradle依赖关系相互关联,然后我使用gradle想法插件生成IntelliJ项

  • 问题内容: 我有两个项目,并且属于该小组。取决于。 为了能够在不依赖外部服务的情况下开发应用程序的UI部分,在其中实现了虚拟DAO (它们返回静态数据,因此我们不必连接到数据库等)。 我们被要求将虚拟类移至。这意味着他们不会被部署到从Web项目构建的战争中。我在maven网站上找到了 这些说明 ,但它们似乎对我不起作用。 在中,我有: 在上运行时,在目标中,我会得到两个jar:和。它们都可以很好地

  • 问题内容: 有没有一种方法可以强制maven(2.0.9)将所有依赖项包含在单个jar文件中? 我有一个构建到单个jar文件中的项目。我希望将依赖项中的类也复制到jar中。 更新:我知道我不能只在jar文件中包含jar文件。我正在寻找一种方法来解压缩指定为依赖项的jar,并将类文件打包到我的jar中。 问题答案: 你可以使用带有描述符的插件来执行此操作。这是我们之一的相关块,它可以完成此任务:

  • 问题内容: 摘要: 我有一个依赖于JAR文件的AAR文件,当我构建AAR项目时,它不包含JAR代码。 细节: 我有一个Java SDK库项目,其中包含我们用于Java Web项目的代码,此类库是使用内部Nexus服务器(如JAR)创建的,并驻留在内部。 目的是通过一个AAR库提供此JAR库的“ Android配置”版本,多个Android应用程序可以使用该版本,并最大程度地减少了实现它的工作量(和

  • 摘要: 我有一个AAR文件,它依赖于一个JAR文件,当我构建AAR项目时,它不包含JAR代码。 我的AAR项目包含了Java SDK库(JAR)的gradle依赖项,但在构建时,AAR不包含来自它的任何类。 代码: 这是Java SDK项目的gradle文件: 注意2:我尝试在Android项目中添加到我的AAR依赖项,但这没有解决任何问题,真正的问题是在构建AAR项目时,JAR项目代码没有被捆绑

  • 根据我的理解,包含/排除只是白名单/黑名单,所以我不能显式地强制包含一些没有包含在实际依赖列表中的内容。 为了获得更多的上下文,我有一个JAR依赖项,它包含一个资源,我只希望它包含在我的shade工件中,但是在类路径上使用该JAR会导致错误。 明确地说,我希望在一个调用中生成一个带有附加依赖项的阴影jar,以及一个没有附加依赖项的普通jar。