当前位置: 首页 > 面试题库 >

使用带有类库中多个库的自定义清单创建jar

赵俊侠
2023-03-14
问题内容

我试图从我的日食创建一个jar,为了能够使用外部.jar,我在清单文件路径中使用了带有多个.jar的清单。

Manifest-Version: 1.0
Sealed: true
Main-Class: src.BatchTester
Class-Path: . P:/Tools/xstream/1.4.2/lib/kxml2-2.3.0.jar P:/Tools/xstream/1.4.2/lib/xstream-1.4.2.jar P:/Tools/StringTemplate/4.0.5/lib/antlr-3.3-complete.jar P:/Tools/StringTemplate/4.0.5/lib/ST-4.0.5.jar P:/Tools/Jdbc/lib/sqljdbc4.jar

显然,如果我不将库放在类路径中,则会出现以下错误:

java.lang.NoClassDefFoundError: com/thoughtworks/xstream/XStream

但是,当我将它们放在类路径中时,错误变为:

java.lang.NoClassDefFoundError: src/BatchTester

因此,似乎找不到我的主班。我在类路径中.尝试了几种可能性,例如在类路径中添加或删除类,但是无法使其正常工作。

关于如何解决这个问题的任何想法???

感谢您的时间和精力,

PS:创建.jar后,清单中的类路径如下所示:

Class-Path: . P:/Tools/xstream/1.4.2/lib/kxml2-2.3.0.jar P:/Tools/xstr
 eam/1.4.2/lib/xstream-1.4.2.jar P:/Tools/StringTemplate/4.0.5/lib/ant
 lr-3.3-complete.jar P:/Tools/StringTemplate/4.0.5/lib/ST-4.0.5.jar P:
 /Tools/Jdbc/lib/sqljdbc4.jar

使用新的线条和空格,但是即使将其更改为“正确”的格式,我仍然遇到相同的问题。

PS2:我知道可以使用Fat-Jar这样的插件来使其工作,但我不想在我的.jar文件中插入比所需更多的数据。


问题答案:

最后,我将所有库复制到/ lib文件夹中,并使用ant目标将它们添加到.jar中,因为IT人员似乎可以(因为这是一个小型应用程序)。

这是蚂蚁(如果对某人有用):

<?xml version="1.0" encoding="UTF-8"?>
<project name="BatchTester" default="compile" basedir=".">
    <property name="external" value="lib/external-libs.jar"/>
    <target name="compile">
        <javac srcdir="jav"
               source="1.6"
        />
        <echo>Creating jar File</echo>
        <!--create a new .jar with all the external jars in /lib-->
        <jar jarfile="${external}">
            <zipgroupfileset dir="lib/">
                <include name="**/*.jar"/>
            </zipgroupfileset>
        </jar>
        <!--<sleep seconds="1"/>-->
        <!--create .jar file-->
        <jar jarfile="BatchTester.jar" index="true" filesetmanifest="mergewithoutmain">
            <fileset dir=".">
                <include name="**/jav/**/*.class"/>
                <exclude name="**/jav/**/*.java"/>
            </fileset>
            <zipfileset src="${external}">
                <exclude name="META-INF/*.SF"/>
            </zipfileset>
            <manifest>
                <attribute name="Main-Class" value="jav.BatchTester"/>
            </manifest>
        </jar>
        <!--delete previously created extern .jar-->
        <delete file="${external}"/>
    </target>
</project>


 类似资料:
  • 我想将 UI 表视图与不同的自定义表视图单元一起使用。我的3个单元格是这样的: Cell1:应该有一个图像和一个标签。 Cell2:应该有两个标签。 Cell3:应该有一天选择器。 我不想为单元格编写标签代码。我如何在Swift中管理这些?我必须为每个单元格编写自己的类吗?我可以使用一个tableviewController吗?如何在不同的单元格中填充数据? 我想生成一个表视图,就像iOS设备的联

  • 问题内容: 我遇到了一个与正则表达式和Python有关的问题。 我想创建一个自定义分类语料库,并在其上训练一个朴素贝叶斯分类器。我的问题如下:我想有两个类别,“ pos”和“ neg”。正文件全部位于一个目录中,而负文件均位于单独的目录中。 如何使用加载并标记pos目录中的所有肯定文件,并对否定文件执行相同的操作? 注意:设置与语料库()完全相同。 问题答案: 这是我的问题的答案。由于我一直在考虑

  • 本文向大家介绍CI框架实现创建自定义类库的方法,包括了CI框架实现创建自定义类库的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了CI框架实现创建自定义类库的方法。分享给大家供大家参考,具体如下: 当我们使用 “类库” 这个词的时候,通常我们指的是位于 libraries 这个目录下的那些类。 接下来我们将介绍 如何在 application/libraries 目录下创建你自己的类库

  • 当我们使用术语"类库"时,我们一般指的是位于libraries 文件夹中的类,它们在wiki的"类库参考"这个板块被讨论.在当前这个话题中,我们将讨论如何在 application/libraries 文件夹中建立你自己的类库,并使它们与全框架的资源维持分离. 作为一个额外的功能,当你需要在原始类中简单地添加一些功能时,CodeIgniter能使你的类库extend 自原始类.你甚至可以通过在ap

  • 我正在创建一个自定义标记库,并希望在我的一个组件中使用它。我已经创建了一个包,其中包括扩展TagSupport类的标记hello类,我创建了标记。我的资源文件夹下的tld文件 在我的pom中。xml,我使用了资源标记来包含我的。生成的jar文件中的tld文件。 这是我的java类和tld文件 标记类别:- 我还成功地在felix控制台中安装了该捆绑包,没有出现任何错误。然后,我在jsp中编写了自定

  • 我尝试了以下文章中描述的步骤 或者和这篇GitHub帖子一样 这对我不起作用。 我也读到这种方法:看这里,但这不是我在寻找的 我如何定制我的库,使Micronaut能够直接在我的项目中创建和注入它的bean?