我有以下文件:
A.jar(包含*.class文件)
B.jar(包含*.class文件)
Program.java(包含带有main函数的Program类,依赖A.jar和B.jar)
如何使用 GCJ构建可执行文件程序?
我有以下文件:
A.jar(包含*.class文件)
B.jar(包含*.class文件)
Program.java(包含带有main函数的Program类,依赖A.jar和B.jar)
如何使用 GCJ构建可执行文件程序?
自从我玩 Java 已经有一段时间了,所以以下内容大部分都在我的脑海中。
在 linux 中,java 程序通常由包装脚本启动。对于您的情况,此包装脚本可以是Program
,内容:
#!/bin/sh
java -cp A.jar:B.jar:/path/to/dir/where/Program.class/is/in Program
如果您希望只有一个 jar 文件,那么您可以“解压缩”A.jar 和 B.jar 并创建一个新 jar,例如 Program.jar,其中包含 A.jar、B.jar 和您的 Program 中的所有类。类,然后您创建一个小清单文件,该文件告诉您在执行 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 ..
现在创建 shell 脚本包装器Program
:
#!/bin/sh
java -jar /path/to/Program.jar
使其可执行:
chmod +x Program
并运行它:
./Program
如果有效,请鼓掌,否则请扔烂番茄!
这对我有用:
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