我有一个文件夹结构
/com/cdy/ws/a.class files
/com/cdy/ws/b.class files
/com/cdy/ws/c.class files
当我运行以下命令“jar cvf asd.jar * .class”时,它会给jar提供所有类文件。 但是没有生成文件夹结构。所有类文件都必须在“com.cdy / ws”下,但所有类都在META-INF的相同级别。 谁能告诉我生成包结构的命令是什么?
由于
答案 0 :(得分:67)
您需要开始在文件的 root 处创建JAR。
所以,例如:
jar cvf program.jar -C path/to/classes .
假设path/to/classes
包含com
目录。
仅供参考,如今大多数人直接使用jar
命令相对不常见,因为他们会使用Ant或Maven之类的构建工具来处理(以及构建的其他方面)。值得努力的是允许其中一个工具处理构建的所有方面,并且使用一个好的IDE来帮助编写build.xml
(Ant)或pom.xml
(Maven)更加容易)。
答案 1 :(得分:14)
你想要
$ jar cvf asd.jar .
从.
指定目录(例如jar
)。这将在jar文件中维护您的文件夹结构。
答案 2 :(得分:9)
从包含com
文件夹的目录:
$ jar cvf asd.jar com
added manifest
adding: com/(in = 0) (out= 0)(stored 0%)
adding: com/cdy/(in = 0) (out= 0)(stored 0%)
adding: com/cdy/ws/(in = 0) (out= 0)(stored 0%)
adding: com/cdy/ws/a.class(in = 0) (out= 0)(stored 0%)
adding: com/cdy/ws/b.class(in = 0) (out= 0)(stored 0%)
adding: com/cdy/ws/c.class(in = 0) (out= 0)(stored 0%)
$ jar -tf asd.jar
META-INF/
META-INF/MANIFEST.MF
com/
com/cdy/
com/cdy/ws/
com/cdy/ws/a.class
com/cdy/ws/b.class
com/cdy/ws/c.class
答案 3 :(得分:7)
步骤1:使用命令提示符(或Linux shell提示符)转到保存类的目录
喜欢项目。
C:/workspace/MyProj/bin/classess/com/test/*.class
使用命令转到目录bin:
cd C:/workspace/MyProj/bin
步骤2:使用以下命令生成jar文件。
jar cvf helloworld.jar com\test\hello\Hello.class com\test\orld\HelloWorld.class
使用上面的命令,类将放在目录结构的jar中。
答案 4 :(得分:2)
这个波纹管代码给了我正确的答案
jar cvf MyJar.jar *.properties lib/*.jar -C bin .
它添加了(log4j)属性文件,它在lib中添加了jar文件。然后它进入bin以检索包的类文件。
答案 5 :(得分:2)
您指定的folderName必须位于C:\Program Files\Java\jdk1.7.0_02\bin
路径上
Foldername有类文件。
C:\Program Files\Java\jdk1.7.0_02\bin>jar cvf program1.jar Foldername
现在program1.jar将在C:\ Program Files \ Java \ jdk1.7.0_02 \ bin路径中创建
答案 6 :(得分:0)
比上面更多 -
将Java打包内容保存在一个目录中,并确保除了Java包及其相应的Java类之外没有任何内容。
打开命令(如果是Windows)提示,转到包含目录路径,如下所示 -
C:> cd" C:\ Users \ UserABC \ Downloads \ Current Folder"
C:\ Users \ UserABC \ Downloads \ Current Folder> jar cvf hello-world-1.0.1.jar .
答案 7 :(得分:0)
为避免将源文件.java
添加到您的包中,您应该
cd src/
jar cvf mylib.jar com/**/*.class
假设您的项目结构类似于
myproject/
src/
com/
mycompany/
mainClass.java
mainClass.class
答案 8 :(得分:0)
这就是我在.sh文件中所做的,让我们考虑一下install.sh
#!/bin/sh
echo Installing
cd .../Your_Project_Directory/com/cdy/ws/
jar cfe X.jar Main *.class
cd .../Your_Project_Directory/
ln -s .../Your_Project_Directory/com/cdy/ws/X.jar X
echo Testing...
java -jar X
echo You are Good to Go...Use hapily
#etc.
在Class目录中创建可执行Jar文件,并在任何地方创建SymLink。
使用
运行它$ sh install.sh[ENTER]
$ java -jar X[ENTER]
答案 9 :(得分:0)
假设您的项目文件夹结构如下:
Recyclerview
您可以发出以下命令来创建“ Example.jar”。
jar -cvfm Example.jar manifest.txt com / test / awt / *。class
例如:
从命令提示符“ cd C:\ test \ classes”转到文件夹结构
C:\ test \ classes> jar -cvfm Example.jar manifest.txt com / test / awt / *。class