1

私は次のファイルを持っています:

A.jar(* .classファイル
を含む)B.jar(* .classファイルを含む)
Program.java(A.jarおよびB.jarに依存するmain関数を持つプログラムクラスを含む)

GCJを使用して実行可能ファイルプログラムを作成するにはどうすればよいですか?

4

2 に答える 2

1

Javaで遊んでからしばらく経ちましたので、以下はほとんど頭から離れています。

Linuxでは、通常、Javaプログラムはラッパースクリプトによって起動されます。あなたの場合、このラッパースクリプトはProgram、コンテンツにすることができます。

#!/bin/sh
java -cp A.jar:B.jar:/path/to/dir/where/Program.class/is/in Program

jarファイルを1つだけにしたい場合は、A.jarとB.jarを「解凍」して、A.jar、B.jar、およびプログラムのすべてのクラスを含むProgram.jarなどの新しいjarを作成できます。クラスを作成し、jarファイル(この場合はProgram.class)を実行するときに実行するクラスを指示する小さなマニフェストファイルを作成します。

マニフェストファイルの内容(manifest.txtと呼びましょう):

-----8<------
Main-Class: Program

----->8------

「Main-Class:Program」行の後の空白行に注意してください-これは必要です。

したがって、シングルを作成しますProgram.jar

gcj --classpath A.jar:B.jar Program.java
mkdir tmp
cd tmp
jar xf ../A.jar
jar xf ../B.jar
cp ../Program.class .
jar cmf ../manifest.txt ../Program.jar .
cd ..

次に、シェルスクリプトラッパーを作成しますProgram

#!/bin/sh
java -jar /path/to/Program.jar

実行可能にする:

chmod +x Program

そしてそれを実行します:

./Program

それがうまくいくなら拍手、そうでなければ腐ったトマトを投げてください!

于 2011-12-14T14:15:10.390 に答える
0

これは私のために働きます:

gcj -c A.jar -o Ao
gcj -c B.jar -o Bo
gcj --main = Program --classpath = A.jar:B.jar -o Program Ao Bo Program.java

于 2011-12-15T12:11:37.950 に答える