55

フォルダー構造があります

/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 にあります。パッケージ構造を生成するコマンドは何ですか?

ありがとう

4

10 に答える 10

17

あなたがしたい

$ jar cvf asd.jar .

からディレクトリ (例: .)を指定しますjar。これにより、jar ファイル内のフォルダー構造が維持されます。

于 2013-08-09T12:14:29.493 に答える
13

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
于 2013-08-09T12:15:11.543 に答える
7


ステップ 1:プロジェクトの場合と同様に、コマンド プロンプト (または Linux シェル プロンプト) を使用して、クラスが保存されているディレクトリに移動します。
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 に配置されます。

于 2014-07-03T18:21:06.267 に答える
3

指定した 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 パスに作成されます

于 2014-11-28T14:16:43.113 に答える
2

この以下のコードは私に正しい応答を与えました

jar cvf MyJar.jar *.properties lib/*.jar -C bin .  

(log4j)プロパティファイルを追加し、libにjarファイルを追加しました。そして、パッケージでクラスファイルを取得するためにbin内に入りました。

于 2013-11-07T09:26:33.000 に答える
0

ソースファイル.javaをパッケージに追加しないようにするには、次のことを行う必要があります

cd src/
jar cvf mylib.jar com/**/*.class

あなたのプロジェクト構造が次のようなものであると仮定します

myproject/
    src/
      com/
        mycompany/
          mainClass.java
          mainClass.class
于 2017-11-06T14:33:18.773 に答える