Dig*_*ark 3 java windows zip cmd 7zip
我有一个.jar可以运行的可执行文件-File,但我想用另一个程序将一些文件添加到 .jar-File 中。我的想法是使用 7zip 命令行扩展,但是当我尝试向.jar-File添加一些东西时。我使用这个命令:
7za.exe a -t7z C:\myfiles\thejar.jar C:\filestoadd\* -r
每次我尝试这样做时,CMD 都会抛出一个错误并说:
Error: C:\myfiles\thejar.jar is not supported archive
好吧,好吧。然后我的想法是解压缩文件thejar.jar,将文件添加到从中thejar.jar提取文件的目录中,并创建一个.zip扩展名为.jar. 当我这样做时,文件thejar.jar比以前小了大约 1MB ,添加了文件。我尝试了不同的压缩方法,但它总是更小。当我尝试执行 时.jar,会弹出一条错误消息并说Invalid or corrupt jarfile. 我已经用谷歌搜索了我的问题,但我现在还没有得到答案......你能帮我吗?
简单/推荐的解决方案是使用jar每个 Java JDK 中包含的命令将额外文件添加到 JAR。
也可以使用JarOutputStream以下命令创建 JAR 文件:
使用 7zip 或任何其他“标准”zip 实用程序的问题在于,您可能会不小心使用一些 Java 实用程序不理解的现代 zipfile 功能。
您还询问(在评论中)是否允许您将jar.exe和jli.dll从 Oracle JDK / JRE复制到您自己的项目中。
阅读许可证! 我们不是这里的律师,我们无法为您提供适当的法律建议。
我的理解是这将违反 Oracle 许可和版权。允许嵌入完整的 JRE,但不允许随意挑选。
考虑改用 OpenJDK。OpenJDK 的许可是基于 GPL 的,并且对重新分发 vanilla 发行版没有基于版权的限制。甚至不需要修改和重新分发它...只要您提供可用的源代码并针对您对其所做的任何更改构建说明1。
最后,请注意,这在 Java 11 之后没有实际意义。Oracle 现在只分发完整的 JDK。因此,这意味着如果您的客户从 Oracle 安装“Java”,jar则将包含该命令。
1 - 您只需要担心商标。基本上,商标许可说如果产品以非允许的方式偏离“标准”,则不允许将其称为“Java”等。详情请自行查找。
| 归档时间: |
|
| 查看次数: |
12719 次 |
| 最近记录: |