2016-08-10 2 views
1

Поскольку я повышен до новой установки Ubuntu 16.04, я не могу скомпилировать мой Java проект с любым из моих установленных JDKs, например, этот:Не удается скомпилировать Java на 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 

Компиляция мой проект maven:

$ 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] ------------------------------------------------------------------------ 

Такая же ошибка возникает с другими версиями Java, которые я установил. Использование Maven 3.3.9

Пробовал его на удаленной коробке при работе с Ubuntu 12.04 и java build 1.8.0_91-8u91-b14-0ubuntu4 ~ 12.04-b14 и ошибок компиляции. Пробовал самое близкое на моем 16.04 с java 1.8.0_91-8u91-b14-3ubuntu1 ~ 16.04.1-b14, получив ту же ошибку, что и выше.

Пробой к различным фазам с помощью компиляции mvn, но mvn-пакет вызывает ошибку.

+0

Кажется, связанные с http://stackoverflow.com/questions/36408706/java-lang-illegalstateexception-endpostable-already-set Проверили ли вы с jdk7 или ниже? –

+0

В моем проекте используются некоторые функции Java 8, поэтому это не возможно ... –

+0

Возможно, обновление перепуталось с вашими переменными окружения. Проверьте, использует ли maven версию java, которую вы предпочитаете. Ваш maven использует версию 1.8.0_65. Что возвращает «java -version» из терминала? –

ответ

1

это ошибка в 3.2 & 3.3 версии maven-compiler-plugin.

при запуске пакета «mvn» второй раз, исходный исходный каталог добавляется к исходному пути перед фазой генерации-источника и вызывает это исключение синтаксического анализатора.

Возврат к старой версии версии 3.2, например, из maven-compiler-plugin исправляет проблему.

Отметьте, что инкрементальная компиляция не работает 3.0 & 3.1 версии maven-compiler-plugin. Итак, я предпочитаю использовать версию 2.5.1 версии maven-compiler-plugin.

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

Предполагаю, что вы имели в виду версию 3.5.1, а 2.5.1 была опечаткой. https://maven.apache.org/plugins/maven-compiler-plugin/dependency-info.html –

+0

Не могли бы вы ссылаться на отчет об ошибке, чтобы подтвердить, что эта ошибка исправлена ​​в последних версиях? –