0

我是 gcj 和 java 的新手,所以如果我遗漏了一些明显的东西,请原谅我。我正在尝试使用 gcj 编译 YUICompressor,但我收到一个错误,它找不到主类。我有:

~/java/yuicompressor.2.4.8> gcj --main=YUICompressor -g -o yuicompress build/yuicompressor-2.4.8.jar 
/tmp/ccbNVkUt.o: In function `main':
/tmp/ccbuUbZw.i:11: undefined reference to `YUICompressor::class$'
collect2: ld returned 1 exit status

我知道 YUICompressor 类在 jar 文件中,所以我不明白为什么 gcj 没有看到它:

~/java/yuicompressor.2.4.8> jar -tf build/yuicompressor-2.4.8.jar | grep YUICompressor.class
com/yahoo/platform/yui/compressor/YUICompressor.class
~/java/yuicompressor.2.4.8> find . -name YUICompressor.java -exec grep -H "\bmain\b" {} \;
./src/com/yahoo/platform/yui/compressor/YUICompressor.java:    public static void main(String args[]) {
./build/build_tmp/com/yahoo/platform/yui/compressor/YUICompressor.java:    public static void main(String args[]) {

如果从 java 调用 YUICompressor.jar 文件似乎可以正常工作,但我想将它作为不依赖于目标机器上安装的 java 的二进制文件分发。任何建议表示赞赏。

4

1 回答 1

0

您需要告诉 gcj 整个类名,包括包,即 (在这种情况下) com.yahoo.platform.yui.compressor.YUICompressor

于 2014-10-29T17:24:07.437 回答