Ant unable to find javac, JAVA_HOME won't set on Ubuntu

前端 未结 4 1715
滥情空心
滥情空心 2020-12-23 13:56

I have an Android Project called Hello on my Ubuntu 10.04 i386 Server (headless). It contains all things an Android project folder should have. I first build the project in

相关标签:
4条回答
  • 2020-12-23 14:11

    Did you install the JDK?

    When you install Ubuntu only the JRE is installed as part of the default packages. Unfortunately Ubuntu's package management names the directory as if the JRE were installed along with the JDK. The directory is named java-6-openjdk even though the JDK is not be present.

    Do the following:

    sudo apt-get install openjdk-6-jdk
    

    It will install the JDK in that same directory.

    0 讨论(0)
  • 2020-12-23 14:11

    As Edwin Buck stated, check your $PATH for softlinks to /etc/alternatives/java in the /usr/bin/ directory. They are being read before your appended JAVA_HOME variable.

    That was my problem:

    ls -al /usr/bin/j* 
    lrwxrwxrwx 1 root root    22 2012-05-07 13:26 /usr/bin/java -> /etc/alternatives/java
    lrwxrwxrwx 1 root root    25 2011-05-12 19:45 /usr/bin/java_vm -> /etc/alternatives/java_vm
    lrwxrwxrwx 1 root root    24 2011-05-01 05:22 /usr/bin/javaws -> /etc/alternatives/javaws
    lrwxrwxrwx 1 root root    26 2011-05-12 19:45 /usr/bin/jcontrol -> /etc/alternatives/jcontrol
    lrwxrwxrwx 1 root root    23 2011-04-26 02:24 /usr/bin/jexec -> /etc/alternatives/jexec
    
    0 讨论(0)
  • 2020-12-23 14:16

    Changing JAVA_HOME and PATH are insufficient.

    After installing the Java JDK version that you want (Java DEVELOPMENT Kit, not just Java Runtime Environment JRE), change your preferred version with sudo update-alternatives --config java. If you're on Ubuntu, you probably have 1.6 and 1.7 installed, and 1.8 is available in the PPAs (though I can't find a PPA of 1.8 that's not old).

    0 讨论(0)
  • 2020-12-23 14:34

    --- Updated after noticing a small item in your output ---

    You have your JAVA_HOME set to the correct location for a Java Runtime Environment, which unsuprisingly will allow you to run Java programs, but not develop them.

    Shorten your JAVA_HOME to /usr/lib/jvm/java-6-openjdk (note the removal of the trailing jre). After that your Ant wrappers / compiler detection code won't get confused, as it will be pointing to the home of your Java Development Environment instead of the embedded, related Java Runtime Environment.

    The embedded Java Runtime Environment is provided to make sure you can test against just the core (compiler tools not included) Java offerings.

    --- Original post follows ---

    Finding the command javac has little to do with JAVA_HOME beyond that javac is typically found in a subdirectory under JAVA_HOME

    What you need to do is to modify your PATH environmental variable to include the directory where the Java executables are located. Typically this is done like so

    PATH=${PATH}:${JAVA_HOME}/bin
    export PATH
    

    but it might be done slightly differently depending on your setup. If you do

    ls ${JAVA_HOME}/bin
    

    and you see a javac executable, then the above modification of the path variable will work without any need to change it.

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