我是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。任何建议都表示赞赏。
答案 0 :(得分:0)
你需要告诉gcj整个类名,包括包,这是(在这种情况下)com.yahoo.platform.yui.compressor.YUICompressor
。