2017-11-02 1 views
3

에 우리는 자바 9 자바 7에서 기존 응용 프로그램을 변환하는 나는 최소 요구 사항 여기이 페이지를 따라하기 위해 노력하고있어 : 내가 실행하려고하면 MVN 청소에 설치 https://cwiki.apache.org/confluence/display/MAVEN/Java+9+-+JigsawUseSplitVerifier 자바 7 자바 9

우리의 구성 요소의 몇 가지, 나는 점점 계속 : 나는 UseSplitVerifier 구글하려고하면

Caused by: org.apache.maven.surefire.booter.SurefireBooterForkException: The forked VM terminated without properly saying goodbye. VM crash or System.exit called? 
Command was cmd.exe /X /C ""C:\Program Files\Java\jdk-9.0.1\bin\java" --add-modules java.se.ee -XX:-UseSplitVerifier -jar 

, 나는 StackMapTable에 대한 또는 UseSplitVerifier가 사용하기에 안전한지 일을보고 계속. 하지만 실제로 UseSplitVerifier가 무엇인지, 그리고 J7 -> J9에서 빌드하는 올바른 방법은 무엇인지 알지 못합니다. 감사.

편집 :

<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-surefire-plugin</artifactId> 
<version>2.20.1</version> 

는 최소 2.20.1 그래서 난 그 괜찮을 것이라고 생각 사용하는 것입니다 말한다 https://cwiki.apache.org/confluence/display/MAVEN/Java+9+-+Jigsaw 링크에서 상대 : 내 pom.xml 파일이 플러그인이있다? 프로젝트를 검색 할 때 UseSplitVerifier 인수가 전달되는 것을 볼 수 없으므로 surefire 플러그인을 제외하고 그 명령을 사용하고 있는지 확실하지 않습니다.

+0

세부 사항을 추가하기 만하면 프로젝트에서 사용중인 maven-surefire-plugin 버전은 무엇입니까? 컴파일러 플러그인 구성뿐만 아니라 로그의 명령을 확인하는 것이 좋을 것입니다. 더 이상'-XX : -UseSplitVerifier'를 사용하면 안된다는 것에주의하십시오. Java 8 이후에 더 이상 사용되지 않으며 Java9에서 아마도 제거되었습니다 (* 인식 할 수없는 VM 옵션 'UseSplitVerifier'*). – nullpointer

+0

@nullpointer 나는 maven을 실행하거나 pom을 실행할 때이 옵션을 사용하지 않을 것이다. 이것이 다른 방법으로 실행되고 있습니까? – Crystal

답변

1

조사를 시작하는 당신의 실패 로그의 가능한 원인 보인다 플래그,

-XX:-UseSplitVerifier 

더 이상 Java9에서 지원됩니다, deprecated with Java8 자체를 없었다 할 것입니다 [출처 - Complete list of JVM options

당신에게 Java SE (Java9)의 버전 53으로 클래스를 컴파일하거나 실행하는 동안이 작업을 수행 할 필요가 없으므로이 플래그를 제거하는 것이 이상적입니다.


편집 : JUnit을 통해 테스트를 실행하는 동안 확실한의 2.20.1 버전에보고 된 메모리 누수가 발생했습니다. Java9 모듈에서 여전히 작동해야하는 2.19.1을 계속 사용하고자 할 수 있습니다.