java - JAR 类路径和外部 jar

标签 java jar classpath manifest

我实际上有两个问题

我使用 eclipse -> 导出项目为我的简单桌面(GUI)程序生成 jar 文件
它生成一个 jar 文件和一个 ant 脚本。

第一个问题: 双击时生成的 jar 工作正常。
当我使用生成的ant脚本生成jar时
就我自己来说,这是行不通的。 像这样的目标可能会出现什么问题(假设满足所有依赖项)

 <target name="create_run_jar">
        <jar destfile="G:/dev/myproj/myproj.jar">
            <manifest>
                <attribute name="Main-Class" value="view.myproj"/>
                <attribute name="Class-Path" value=". myproj_lib/grouplayout.jar"/>
            </manifest>
            <fileset dir="G:/dev/myproj/bin"/>
        </jar>
        <delete dir="G:/dev/myproj/myproj_lib"/>
        <mkdir dir="G:/dev/myproj/myproj_lib"/>
        <copy file="G:/dev/.metadata/.plugins/org.dyno.visual.swing/layoutext/grouplayout.jar" todir="G:/dev/myproj/myproj"/>
    </target>  

//nevemind
//第二个问题:
//当我双击自动生成的 jar 文件时,程序启动并正常工作。
//当我从命令行执行 java myjar 时,我得到主类未找到异常..
//很奇怪吧?

最佳答案

我建议您将两种方式生成的JAR文件,使用jar命令将其展开到临时目录中,然后以递归方式使用diff进行比较他们。

但是,我怀疑 @Pace 已经指出了这个问题;也就是说,您在 Class-Path list 条目中使用相对路径,这可能会导致问题。

关于java - JAR 类路径和外部 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5957167/

相关文章:

java - 优先级队列没有根据Java中的优先级返回正确的值

java - 为什么删除 SQLite 数据库 JAR 后 java.sql.DriverManager.getConnection() 仍然有效?

java - Eclipse 类版本错误

Java ant jar 任务和类路径问题

java - 通用类型的实例

java - Salesforce 批量 api 使用 java 从列表中创建和更新 1000 条记录

java - Android sqlite JOIN 查询与 String[] 给出的选择列

Maven 安装插件 : parameter file is missing or invalid

java - jar 里的 jar

java - 如何向接受 File 参数的函数提供类路径资源?