NetBeans 6.8을 사용하여 만든 Java 응용 프로그램을 배포해야 할 때 문제가 있습니다. I 클래스 파일로 gettext를 만들어 일부 번역 파일이 - 여기 jar 파일 외부의 ResourceBundles
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
디렉토리 구조입니다 - (여기에 아무런 문제가 쉘 스크립트 MSYS에서 실행 없음) 다음 스크립트에서 gettext 패키지에서 msgfmt에서 만들어 :
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");
참고 : 로딩 부분은 다음 (클라이언트가 프랑스어 번역 원) 인 JAR 파일을 실행하려고 할 때이 문제는 나타납니다 (컴파일 된 클래스 명령 줄에서 실행 잘 넷빈즈에서 작품 실행 또한 jar 파일 (java -jar main.jar)을 실행할 때 작동하지 않습니다.
재미있는 부분은 매니페스트 파일에서 class-path를 수정하고 "."을 추가하면이 문제가 발생하지 않는다는 것입니다. 클래스 경로에 대한 경로이며 다음 디렉토리 구조를 가짐 :
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
Windows에서 다음 Java 버전을 사용 중입니다.
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)
도움이되었으므로 감사합니다.
는
이 울리
당신은 그것을 믿지 않을 것이다 ... manifest 파일에/("lib/translate /"대신 "lib/translate /" 물건을 작동하게 ... 개미 XML 파일에서 어떻게이 작업을 수행 할 수 있습니까? – INS