我很忙于一个应用程序,它将一个jar文件粘贴到反编译jar的文件夹中,然后将文件夹压缩成一个jar。
反编译和复制工作,但我无法设法让文件夹内容被jared(压缩成jar),我做了大约3小时的研究,发现只有过时的方法。请帮忙。
-Regards marko5049
编辑更多信息: 我道歉,我的意思是我不能让我的应用程序将文件夹转换为jar文件,我的应用程序是jar文件的修改安装程序。然后,它会提取jars文件,然后添加修改,然后应该将文件夹重新转换为jar文件,以便安装修改。 jar文件不可执行。
答案 0 :(得分:7)
鉴于您想通过代码创建JAR;您可以使用JarOutputStream
。有一个示例at this link包含在给定包含所有输入文件的File[]
的情况下创建JAR文件的代码。
至于创建给定起始输入路径的文件列表,请参阅Recursively list files in Java。
您可以构建一个文件列表,然后只使用上面示例中的代码,或者您可以递归扫描文件并将其添加到JAR中。
如果您使用的是Java 7,而且您也知道自己的用户也是如此,那么您也可以Files.walkFileTree()
使用FileVisitor
,以便在访问文件时向JAR添加条目。
<小时/> OP澄清之前的原始答案:
是否有问题:
jar cf my-application.jar folder1 folder2 folder3 etc
JDK附带了jar
实用程序来创建JAR文件。
您可以在此处阅读相关的官方教程:Creating JAR Files。这非常简单。
如果要创建 runnable JAR,可以创建一个包含主类和其他选项的清单文件。链接教程描述了该过程。
答案 1 :(得分:2)
这对我来说适用于MAC OSX:
在jar文件所在的文件夹中打开Terminal,然后运行以下命令
unzip mylib.jar -d jarfolder
//You can then change whatever you need and finally run the command below
jar cvf mylib.jar -C jarfolder/ .
答案 2 :(得分:0)
for windows只需将文件夹设为winrar文件。
现在您获得了带有相应文件夹的可执行jar文件。
答案 3 :(得分:0)
我刚刚发现了这个问题,它的答案对于您的问题更有用: how to zip a folder itself using java
2个提示:
1,一个罐子就是一个拉链。因此,您只需要压缩文件夹并将其重命名为jar
2,请注意,您应压缩整个文件夹而不更改文件的相对路径,而不仅仅是提取所有.class文件并将其压缩在一起。因为运行jar时,类包应与其路径保持一致。
答案 4 :(得分:0)
以下命令在Windows 10和jdk-8u212中对我有用
jar cf my-application.jar folder1 folder2 folder3 etc
答案 5 :(得分:0)
您可以将文件放在zip文件夹中。然后将zip文件转换为Jar格式。.jar扩展文件是Java Archive格式文件。它用于将大量文件存储到一个文件中。您可以尝试免费的在线文件转换器,而无需在计算机上下载新软件。 Google提供了各种在线文件转换器。我会推荐Convert zip to jar
希望对您有帮助。
答案 6 :(得分:0)
最简单的方法..将文件夹放置到C:\Program Files\Java\jdk1.8.0_221\bin
,然后到达CMD的相同路径,然后运行
jar cvf Name_your_jar.jar folder
答案 7 :(得分:0)
我建议尝试在Windows中创建常规的.ZIP文件。 您需要获取7-zip才能查看正在创建的.JAR文件。您应该将内容粘贴到.ZIP中,然后将文件类型从.ZIP重命名为.JAR,这对我有用,希望对您有用。
.JAR基本上是由Oracle Java客户端创建的.ZIP,因此出于某些原因,您需要特殊的文件查看软件,例如7-zip或WinRAR来查看它。
您还可以通过重命名文件类型将.JAR还原为.ZIP。您可能需要使用RegeEdit或其他功能来修改计算机,才能访问重命名文件类型。
我希望这会有所帮助。
答案 8 :(得分:-1)
简单的答案是,将文件夹压缩,然后将其重命名为JAR文件。