如何用包结构创建jar文件?

时间:2013-08-09 12:12:20

标签: java jar

我有一个文件夹结构

/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的相同级别。 谁能告诉我生成包结构的命令是什么?

由于

10 个答案:

答案 0 :(得分:67)

您需要开始在文件的 root 处创建JAR。

所以,例如:

jar cvf program.jar -C path/to/classes .

假设path/to/classes包含com目录。

仅供参考,如今大多数人直接使用jar命令相对不常见,因为他们会使用AntMaven之类的构建工具来处理(以及构建的其他方面)。值得努力的是允许其中一个工具处理构建的所有方面,并且使用一个好的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)

比上面更多 -

  1. 将Java打包内容保存在一个目录中,并确保除了Java包及其相应的Java类之外没有任何内容。

  2. 打开命令(如果是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