6

小さな Java アプリケーションを Windows 実行可能ファイルにコンパイルしたいと考えています。

アプリケーションは非常に小さく、メイン クラスは 1 つだけですが、Apache POI を使用します。

コンパイルすると、POI Jar をクラスパス引数に入れている限り、すべて正常に動作します。

しかし、リンクに関して言えば、GCJ は POI パッケージ内のクラスの参照を解決できません。メッセージはすべて次のようになります。

undefined reference tp 'org::apache::poi:hssf:usermodel:HSSFWorkbook::class$'

アプリケーションをリンクするにはどうすればよいですか?

4

1 に答える 1

6

インポートしたJarを.so個別にライブラリにコンパイルする必要があります。--classpathコードのコンパイル時とライブラリのコンパイル時の両方で、必ずJarsを指定してください。

GNU暗号ライブラリをコンパイルしている例:

gcj --classpath=source/:libs/gnu-crypto.jar -fjni -c libs/gnu-crypto.jar -o libs/gnu-crypto.o 
gcj -shared -fPIC -o libs/libgnu-crypto.o libs/gnu-crypto.o -o libs/libgnu-crypto.so 

最後に、ライブラリパスを参照するシェルスクリプトを使用して実行可能ファイルを実行します。例えば:

#!/bin/sh
export LD_LIBRARY_PATH=./libs/:$LD_LIBRARY_PATH
exec ./MyJavaApp $*
于 2010-01-20T15:47:20.000 に答える