Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';在Ubuntu 16.04上编译java_Java_Maven_Ubuntu_Ubuntu 16.04 - Fatal编程技术网

Can';在Ubuntu 16.04上编译java

Can';在Ubuntu 16.04上编译java,java,maven,ubuntu,ubuntu-16.04,Java,Maven,Ubuntu,Ubuntu 16.04,由于我升级到新安装的Ubuntu 16.04,我无法使用任何已安装的JDK编译Java项目,例如: $ sudo update-alternatives --config java There are 4 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status -

由于我升级到新安装的Ubuntu 16.04,我无法使用任何已安装的JDK编译Java项目,例如:

$ 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] ------------------------------------------------------------------------
$mvn干净安装-DskipTests
...
[信息]---maven编译器插件:3.2:compile(默认编译)@
亲爱的约翰---
[信息]检测到更改-重新编译模块!
[信息]将101个源文件编译到/home/ariel/workspace/dearjohn/target/classes
编译器(1.8.0_65)中发生异常。请在Java bug数据库中提交一个bug(http://bugreport.java.com/bugreport/)在检查数据库是否存在重复项之后。在报告中包括您的程序和以下诊断。非常感谢。
java.lang.IllegalStateException:已设置endPosTable
位于com.sun.tools.javac.util.DiagnosticSource.setEndPosTable(DiagnosticSource.java:136)
位于com.sun.tools.javac.util.Log.setEndPosTable(Log.java:350)
位于com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:667)
位于com.sun.tools.javac.main.JavaCompiler.parseFiles(JavaCompiler.java:950)
位于com.sun.tools.javac.processing.JavacProcessingEnvironment$Round(JavacProcessingEnvironment.java:892)
位于com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.next(JavacProcessingEnvironment.java:921)
位于com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1187)
位于com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
位于com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
位于com.sun.tools.javac.main.main.compile(main.java:523)
位于com.sun.tools.javac.api.javactasquimpl.doCall(javactasquimpl.java:129)
位于com.sun.tools.javac.api.javactasquimpl.call(javactasquimpl.java:138)
位于org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:125)
位于org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:169)
位于org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:823)
位于org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:129)
位于org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
位于org.apache.maven.lifecycle.internal.MojoExecutor.executeforkeredexecutions(MojoExecutor.java:352)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:197)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
位于org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
位于org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
位于org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
位于org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
位于org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
位于org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
位于org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
位于org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:497)
位于org.codehaus.plexus.classworlds.launcher.launcher.launchEnhanced(launcher.java:289)
位于org.codehaus.plexus.classworlds.launcher.launcher.launch(launcher.java:229)
位于org.codehaus.plexus.classworlds.launcher.launcher.mainWithExitCode(launcher.java:415)
位于org.codehaus.plexus.classworlds.launcher.launcher.main(launcher.java:356)
[信息]-------------------------------------------------------------
[错误]编译错误:
[信息]-------------------------------------------------------------
[错误]发生未知的编译问题
[INFO]1错误
[信息]-------------------------------------------------------------
[信息]------------------------------------------------------------------------
[信息]生成失败
[信息]------------------------------------------------------------------------
我安装的其他Java版本也会出现同样的错误。 使用Maven 3.3.9

在使用Ubuntu 12.04和java build 1.8.0_91-8u91-b14-0ubuntu4~12.04-b14的远程设备上尝试过,没有编译错误。使用java 1.8.0_91-8u91-b14-3ubuntu1~16.04.1-b14在我的16.04上尝试了最接近的方法,得到了与上面相同的错误


mvn编译传递会导致不同阶段的故障,但mvn包会导致错误。

这是maven编译器插件3.2和3.3版本中的一个错误

<dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.5.1</version>
</dependency>
第二次运行“mvn包”时,先前生成的源目录会在生成源阶段之前添加到源路径,并导致此解析器异常

例如,切换回较旧的版本3.2,maven编译器插件修复了这个问题

注意,增量编译在maven编译器插件的3.0和3.1版本中被破坏。因此,我更喜欢切换maven编译器插件的2.5.1版本

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

org.apache.maven.plugins
maven编译器plu