2016-08-10 22 views
1

kompilieren Da ich 16,04 zu einer neuen Installation von Ubuntu aufgerüstet, kann ich nicht mein Java-Projekt mit keinem meiner installierten JDKs kompiliert, zum Beispiel dieses:Kann nicht Java auf Ubuntu 16.04

$ sudo update-alternatives --config java 
There are 4 choices for the alternative java (providing /usr/bin/java). 

    Selection Path           Priority  Status 
------------------------------------------------------------ 
    0   /usr/lib/jvm/java-8-oracle/jre/bin/java   1082  auto mode 
    1   /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081  manual mode 
    2   /usr/lib/jvm/java-8-oracle/jre/bin/java   1082  manual mode 
* 3   /usr/lib/jvm/jdk1.8.0_65/bin/java    100  manual mode 
    4   /usr/lib/jvm/jdk1.8.0_92/bin/java    100  manual mode 

compilieren mein maven Projekt:

$ mvn clean install -DskipTests 

... 
[INFO] --- maven-compiler-plugin:3.2:compile (default-compile) @ 

dearjohn --- 
[INFO] Changes detected - recompiling the module! 
[INFO] Compiling 101 source files to /home/ariel/workspace/dearjohn/target/classes 
An exception has occurred in the compiler (1.8.0_65). Please file a bug at the Java Bug Database (http://bugreport.java.com/bugreport/) after checking the database for duplicates. Include your program and the following diagnostic in your report. Thank you. 
java.lang.IllegalStateException: endPosTable already set 
    at com.sun.tools.javac.util.DiagnosticSource.setEndPosTable(DiagnosticSource.java:136) 
    at com.sun.tools.javac.util.Log.setEndPosTable(Log.java:350) 
    at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:667) 
    at com.sun.tools.javac.main.JavaCompiler.parseFiles(JavaCompiler.java:950) 
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.<init>(JavacProcessingEnvironment.java:892) 
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.next(JavacProcessingEnvironment.java:921) 
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1187) 
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170) 
    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856) 
    at com.sun.tools.javac.main.Main.compile(Main.java:523) 
    at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129) 
    at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138) 
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:125) 
    at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:169) 
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:823) 
    at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:129) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions(MojoExecutor.java:352) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:197) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) 
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
[INFO] ------------------------------------------------------------- 
[ERROR] COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
[ERROR] An unknown compilation problem occurred 
[INFO] 1 error 
[INFO] ------------------------------------------------------------- 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 

gleiche Fehler passiert mit den anderen Java-Versionen, die ich installiert haben. Verwendung von Maven 3.3.9

Versucht es auf einer Remote-Box bei der Arbeit mit Ubuntu 12.04 und Java Build 1.8.0_91-8u91-b14-0ubuntu4 ~ 12.04-b14 und keine Kompilierungsfehler. Versuchte die nächste Sache an meinem 16.04 mit Java 1.8.0_91-8u91-b14-3ubuntu1 ~ 16.04.1-b14, den gleichen Fehler wie oben zu bekommen.

Eine Aufteilung auf verschiedene Phasen führt mit MVN Gang kompilieren, aber MVN Paket den Fehler verursacht.

+0

Scheint im Zusammenhang mit http://stackoverflow.com/questions/36408706/java-lang-illegalstateexception-endpostable-already-set Haben Sie mit JDK7 oder niedriger überprüfen? –

+0

Mein Projekt verwendet einige Java 8-Funktionen, so dass keine Möglichkeit ist ... –

+0

Wahrscheinlich das Upgrade mit Umgebungsvariablen durcheinander. Überprüfen Sie, ob maven die von Ihnen bevorzugte Java-Version verwendet. Ihr Maven verwendet die Version 1.8.0_65. Was bedeutet "Java-Version" von Terminal zurück? –

Antwort

1

es ist ein Fehler in 3.2 & 3.3 Versionen von Maven-Compiler-Plugin.

wenn das ‚MVN Paket‘ zweite Mal ausgeführt wird, die vorher erzeugte Quellverzeichnis ist mit dem Source-Pfad vor den Phasen erzeugen Quelle hinzugefügt, und es bewirkt, dass dieser Parser Ausnahme.

Zurückschalten auf die ältere Version 3.2 für Beispiel, von Maven-Compiler-Plugin behebt das Problem.

Beachten Sie, dass die inkrementelle Kompilierung in 3,0 & 3.1 Versionen von Maven-Compiler-Plugin gebrochen ist. Also, ich bevorzuge wechseln Sie die 2.5.1 Version von Maven-Compiler-Plugin.

<dependency> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.5.1</version> 
</dependency> 
+0

Ich nehme an, du meintest Version 3.5.1, und 2.5.1 war ein Tippfehler. https://maven.apache.org/plugins/maven-compiler-plugin/dependency-info.html –

+0

Könnten Sie pls Link zum Fehlerbericht, um zu bestätigen, dass dieser Fehler in den letzten Versionen festgelegt ist? –