Maven not picking JAVA_HOME correctly

后端 未结 8 1519
日久生厌
日久生厌 2020-12-03 02:35

I am on windows environment and using maven to compile my project. Although I just created the project and added the dependencies for various libararies.

As I added

相关标签:
8条回答
  • 2020-12-03 03:08

    Sounds like you are running Maven in Eclipse. Eclipse does not consult JAVA_HOME.

    Make sure you have set your JRE in Eclipse preferences to your desired JDK.

    0 讨论(0)
  • 2020-12-03 03:14

    It seems your JAVA_HOME is set to point to the JRE in eclipse.

    0 讨论(0)
  • 2020-12-03 03:16

    You should NEVER use system scope dependencies. All the code in tools.jar will be available just via the running JVM already. You should remove this dependency altogether..

    Also in order to check what runtime Maven is using just call

    mvn -v
    

    If you are still having a dependency to the tools jar as a problem, one of the dependencies you added has that dependency (and it is really bad quality). To find out which one it is run

    mvn dependency:tree
    

    or if that fails just remove one dependency after another until the problems is gone for the command above.

    Then, when you know where it comes from you can decide what to do next. One path would be to use an exclusion on the dependency that pull tools in.

    0 讨论(0)
  • 2020-12-03 03:16

    Also look in the .mavenrc file in your home dir. This caught me off guard.

    I changed everything as suggested only to find that my .mavenrc file set the JAVA_HOME to an older version.

    0 讨论(0)
  • 2020-12-03 03:20

    You might be using the wrong Maven installation. Switch it in Window > Preferences > Maven > Installations. I had mine set to the Fedora Maven install; changing it back to the default (the version embedded in m2e) fixed the problem for me.

    I suspect what was causing this issue is that the Fedora Maven install was using Fedora's OpenJDK, which probably puts tools.jar in a weird location (everything about Fedora's OpenJDK is weird and non-standard), so Maven can't find it.

    0 讨论(0)
  • 2020-12-03 03:23

    It's a bug in the Eclipse Maven support. Eclipse doesn't support all of the global Maven properties as per the Maven specs.

    According to the specs:

    ${java.home} specifies the path to the current JRE_HOME environment use with relative paths to get for example

    At least in Eclipse 4.3.1 that is not the case, here java.home always points to the JRE that was used to launch Eclipse, not the build JRE.

    To fix the issue you need to start Eclipse using the JRE from the JDK by adding something like this to eclipse.ini (before -vmargs!):

    -vm
    C:/<your_path_to_jdk170>/jre/bin/server/jvm.dll
    
    0 讨论(0)
提交回复
热议问题