質問

私は私のJavaアプリケーションを配布する必要があるとき、私は問題に直面しています、NetBeansの6.8を使用して作成しました。

- 次のスクリプト(ここでは何の問題MSYSの下で実行するシェルスクリプト)でのgettextパッケージからmsgfmtで作られた - 私は、クラスファイルなどのgettextで作られたいくつかの翻訳ファイルを持っています
PO_FILES=`find . -iname "*_*.po"`
rm -f *.class

for PO_FILE in $PO_FILES; do
  CLASS_NAME=`echo $PO_FILE | sed "s/\.po$//" | sed "s/^.*\///"`
  echo "Compiling $PO_FILE to class $CLASS_NAME"
  msgfmt --java2 $PO_FILE -r $CLASS_NAME -d .
done

ここでは、ディレクトリ構造は次のとおりです。

main.jar
lib/translate/Messages_fr$1.class
lib/translate/Messages_fr.class 
lib/*.jar (many needed libraries - they work)

マニフェストファイルには、次のクラスパスを持っています。

lib/xxx.jar ... lib/translate ... lib/yyy.jar (jar files are not the problem)

アプリケーションをロードすることはできません翻訳ファイルを除いて何の問題もなく動作します。

:積載部分は、以下の(クライアントがフランス語の翻訳を望んでいる)であります
Locale.setDefault(Locale.FRANCE);
myResources = ResourceBundle.getBundle("Messages");

注:この問題は、NetBeansからjarファイル(実行中に実行しようとしたときにのみ表示されるjarファイル(javaの-jar main.jar)を実行するときにコンパイルされたクラスでもなく動作し、コマンドラインから実行し、うまく機能<。 / P>

面白い部分は、私がマニフェストファイルからクラスパスを変更し、追加した場合、私はこの問題を持っていないということです「」クラスパスへのパスと、このディレクトリ構造を有するます:

main.jar
lib/translate/Messages_fr$1.class
lib/translate/Messages_fr.class 
lib/*.jar (many needed libraries - they work)
Messages_fr$1.class
Messages_fr.class

私は、次のJavaのバージョンでWindowsを使用しています:

C:\>java -version
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)

D:\Program Files\Java\jdk1.6.0_17\bin>java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing)
これはイライラなると

私は、任意の助けを感謝します。

タグ、ありがとう

イウリアン

役に立ちましたか?

解決

実際の問題は、(コメントに記載されているように)、JARファイルからクラスパスに/欠けていました。このようなパスだけ持つ例:パスを/ MYPATHは十分ではありませんでした。私はそれを動作させるために(/パス/ MYPATH)/を追加するために必要な

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top