繁体   English   中英

如何从类似于 eclipse 的命令行创建可运行的 jar 文件

[英]how to create a runnable jar file from command line similar to eclipse

我知道 eclipse 会生成一个可运行的 jar 文件,其中包含提取并包含在 jar 文件中的所有库 .jar 文件。 在从命令提示符手动创建 jar 文件时,我如何执行类似的操作。 我是否需要将所有 lib jar 解压缩到 classes 文件夹中?

目前我正在使用 -

    jar cvfm example.jar manifest.txt -C  Classes/ .

这将创建一个包含所有类文件的 jar 文件,我需要将所有库 jar 放在与此 example.jar 存在的同一文件夹中。

jar命令行实用程序没办法做这种事情。 依赖问题有3个主要解决方案:

  1. 在您的MANIFEST.MF中,您可以引用其他jar文件作为类路径的一部分,然后人们可以使用java -jar [just your jar]来调用你的代码,你的依赖项将被选中
  2. 你可以将你的代码和依赖包装到一个胖罐子里(这就是你所描述的)。 通常你只是转换你的项目使用一些构建工具(比简单的javac和jar更先进)并配置工具。 例如与maven 在这里这里看到2种不同的方法
  3. (再次使用构建工具)你可以使用比胖罐更好的东西 - 使用一个罐子 不同的是,使用胖jar会冒不同库中具有相同名称的文件“碰撞”的风险

以上答案无疑是正确的。 不可否认,又快又脏:

将所需的 jar 文件复制到 javac 创建类文件的输出目录中。

cp $LIB_PATH/*.jar $TARGET_PATH
cd $TARGET_PATH
for filename in ./*.jar; do
    echo "merge library $filename to FAT jat"
    unzip "$filename"
    rm -rf META-INF
    rm "$filename"
done

然后创建 jar 文件并确保包含所有必需的类:

jar cmf manifest.mf $TARGET_JAR_NAME com/* javax/* org/*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM