2017-12-11 16 views
1

Sun JDE 9.0.1이있는 Ubuntu Linux 시스템이 있고 콘솔에서 Fx의 CSS 파일을 이진 형식으로 변환해야합니다. 하지만이 명령을 실행할 때 :Java 9 javapacker는 bss '를 생성하는 동안 jfxrt.jar을 찾을 수 없습니다. 리눅스에서 "createbss"모드로 완전히 망가졌습니다. 버그를 피하는 방법?

Error: jfxrt.jar needs to be on classpath for -createbss and for -createJar without -nocss2bin

이 내 JDK가 제대로 설치되어

javapackager -createbss -outdir . -srcdir . 

을 나는 오류가 발생했습니다. 나는 필요한 모든 모듈 (FX 포함)을 가지고있다. 어리석은 버그를 피할 수있는 방법에 대한 아이디어가 있습니까? "/ usr/lib/jvm/java-9-oracle/jmods"디렉토리에서 javapackager를 실행하면 오류없이 완료됩니다. 그래서 지금은 못생긴 픽스를 사용하고 있고, modules 디렉토리를 검색하고, 현재 디렉토리로 만들고, 거기에서 packager를 실행합니다. 그러나 그것은 추한 추한 것이다. javapackager는 outdir, srcdir 및 srcfiles와 같은 다른 매개 변수를 허용하지 않으므로 jfx 모듈의 경로를 강제로로드하거나 찾을 수 없습니다. 그러나 환경 변수 나 수정 사항을 덜 추악하게 만들 수있는 트릭이있을 수 있습니까?

P. jmod 디렉토리에서 실행하거나 매개 변수에서 "-srcdir"을 제거하면 오류가 제거되지만 packager는 "-srcfiles"로 입력 파일을 지정한 경우에도 출력 파일을 생성하지 않습니다. javapackager가 createbss 모드에서 완전히 망가 졌다고 보입니다. 누구든지 Java 9에서 사용합니까?

+0

환경 설정을 확인 했습니까? – Marged

+0

특정 경로에서 실행하는 것이 작동한다는 사실은이 경로가 기본 Java 설치 경로가 아니라는 것을 의미합니다. 'update-alternatives'를 사용하여 이것이 기본 자바인지 확인하십시오 : https://askubuntu.com/questions/121654/how-to-set-default-java-version – Itai

+0

제 환경은 Ok입니다. Java 설치가 하나뿐입니다 (Oracle JDK 9.0.1). 모든 컴파일러와 Java 프로그램 (JavaFX 포함)은 완벽하게 작동합니다. javapackager의 절대 경로를 지정하면 아무 것도 변경되지 않습니다. – Sap

답변

0

소스를 확인했습니다. JDK 9.0.1의 javapackager가 완전히 고장났습니다! Java 8의 실행 파일을 사용하십시오. 오라클에 버그 보고서를 작성했는데 갑자기 매우 놀랐습니다 (아무도 핵심 도구의 기본 기능 중 하나가 아직 고장났다는 것을 알지 못했습니까?).

일시적 해결책 : JDK 1.8의 javapackaged 도구를 사용하십시오. 필요한 것은 실행 파일 자체 뿐이며 원하는 위치에 둘 수 있습니다. 내 프로젝트 트리 ("tools"디렉토리 아래)에 바로 넣고 건물 스크립트에서 호출합니다. 경고! "createbss"에 대해서만이 대체 된 실행 파일을 사용하십시오! 다른 모든 것들을 위해 정상적인 것을 사용하십시오!

+0

bss 파일은 CSS 파일의 최적화 일뿐입니다. bss 생성을 건너 뛰고 꽤 작은 성능 저하를 가져올 수도 있습니다. 일반적으로 BSS 용 JDK 8을 사용하는 해결 방법 이겠지만 요. 성가심을 용인 할 수 있다면 창조는 더 나은 결과입니다 .-) – jewelsea

+0

CSS가 꽤 크고 모든 형태로 사용된다면 눈에 띄는 성능 향상을 느낄 수 있습니다. 그러나 그것은 매우 작습니다. – Sap