Towards the “true” definition of JAVA_HOME

前端 未结 5 1076
青春惊慌失措
青春惊慌失措 2020-12-06 17:17

As a Java developer who switches between *NIX systems (OS X, Ubuntu, ...), although I can always \"get\" my JDK up and running, it seems that there is no clear definition of

相关标签:
5条回答
  • 2020-12-06 17:54

    There is no "true" definition of JAVA_HOME. This variable is not used by the Java Runtime Environment, and has no specification as part of the Java platform.

    It is merely a convention that is used by some applications that run on top of the Java platform. Since there's no standard, each application is free to make its own rules about the directory to which this variable should refer; you should read the application's documentation to find out what it needs.

    That said, every application I've found that uses this variable will work if you set it to the top level directory of a JDK installation (not the JRE within the JDK, but the JDK itself). This directory should contain "bin" and "lib" subdirectories that contain the java executable and the runtime libraries, respectively.

    Some applications will also work if you point it at a JRE, but if it needs development tools like javac, it will fail.

    Usually, I specify JAVA_HOME on the command line when I run a tool than needs it, because I work with multiple versions of Java, like this:

    JAVA_HOME=/usr/local/jdk1.6.0_29 ant
    
    0 讨论(0)
  • 2020-12-06 17:58

    I would define it like the path such:

    `JAVA_HOME\bin\java`
    

    where the executable that will run your programs is.

    The source root to look for all your SDK JRE files and jars.

    0 讨论(0)
  • 2020-12-06 18:00

    JAVA_HOME should point to the installation directory of the Java installation you want to use.

    0 讨论(0)
  • 2020-12-06 18:03

    I don't know about what it is set to on different systems, but JAVA_HOME should be set to the root of the java installation. So if you have it installed to

    C:\Program Files\Java\jdk1.6.0_25\

    JAVA_HOME should be set to that.

    Similar to JDK_HOME if you see that in writing.

    0 讨论(0)
  • 2020-12-06 18:13

    Sun's convention refers to java home as the jre root dir. This should be the more authoritative definition.

    For dev tools like maven, they would mostly care about jdk dir. They should have called it "JDK home". Unfortunately many call it "java home" too, hence the confusion.

    We can break the confusion by not using "java home"; instead, say "jre home" or "jdk home" for clarity.

    0 讨论(0)
提交回复
热议问题