You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Mike Hansen (JIRA)" <ji...@codehaus.org> on 2012/06/05 00:14:21 UTC

[jira] (MCOMPILER-104) JAVA_HOME pointing to JDK but /usr/lib/java/../lib/tools.jar being used

    [ https://jira.codehaus.org/browse/MCOMPILER-104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=300348#comment-300348 ] 

Mike Hansen commented on MCOMPILER-104:
---------------------------------------

I have this problem too and unfortunately, my situation doesn't seem as simple to solve as #sombriks.  I'm using command-line mvn, but I also see this in netbeans.

I get the same error and I also use Slackware (13.37).  My JAVA_HOME is set to /usr/lib/java, which is a JDK and has a "jre" subdirectory (I'm using the 'real' Oracle jdk 1.6).

>From the error message, it seems the java compiler plugin (not forked) is expecting JAVA_HOME to be set to the JRE which would be /usr/lib/java/jre.  If that were the case, /usr/lib/java/../lib/tools.jar would indeed resolve correctly.  So that is one work-around, but I don't see why I would need to set my JAVA_HOME to the jre location to make things work and I don't want to set it to the JRE.

I've looked all around in the mvn script and settings files and I can't find anywhere that it might even hint at putting in this ".." or expecting JAVA_HOME to be the jre.

When I type 'which java', I get /usr/lib/java/bin/java, which is indeed my jdk.  It isn't a symlink and I have no symlink for java in /usr/bin.

When I type 'mvn --version' it shows my proper JAVA_HOME value as I'd expect.

Another workaround is to configure the compiler plugin in my pom file and set the executable location to ${JAVA_HOME}/bin/java, and that works fine.  But I'm very curious to understand why the default settings cause this problem.

Here is the compiler configuration I'm using in my POM, with the work-around commented out:

                <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <configuration>
                                <!--
                                <fork>true</fork>
                                <executable>${JAVA_HOME}/bin/javac</executable>
                                -->
                                <source>${java-version}</source>
                                <target>${java-version}</target>
                        </configuration>
                </plugin>


Any ideas what could be going on here?
                
> JAVA_HOME pointing to JDK but  /usr/lib/java/../lib/tools.jar being used 
> -------------------------------------------------------------------------
>
>                 Key: MCOMPILER-104
>                 URL: https://jira.codehaus.org/browse/MCOMPILER-104
>             Project: Maven 2.x Compiler Plugin
>          Issue Type: Bug
>    Affects Versions: 2.0.2
>         Environment: Linux sombriks 2.6.24.5-smp #2 SMP Wed Apr 30 13:41:38 CDT 2008 i686 Intel(R) Core(TM)2 Duo CPU     E4500  @ 2.20GHz GenuineIntel GNU/Linux
> java version "1.6.0_10"
> Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
> Java HotSpot(TM) Server VM (build 11.0-b15, mixed mode)
>  echo $JAVA_HOME
> /usr/lib/java
> which javac
> /usr/lib/java/bin/javac
>            Reporter: sombriks
>
> using command line or netbeans plugin it's happening:
> leonardo@sombriks:~/NetBeansProjects/arena/arena-client$ mvn compile
> [INFO] Scanning for projects...
> [INFO] ------------------------------------------------------------------------
> [INFO] Building Arena PUJ Client (jar)
> [INFO]    task-segment: [compile]
> [INFO] ------------------------------------------------------------------------
> [INFO] [resources:resources {execution: default-resources}]
> [WARNING] Using platform encoding (ISO-8859-1 actually) to copy filtered resources, i.e. build is platform dependent!
> [INFO] Copying 0 resource
> [INFO] [compiler:compile {execution: default-compile}]
> [INFO] Compiling 1 source file to /home/leonardo/NetBeansProjects/arena/arena-client/target/classes
> [INFO] ------------------------------------------------------------------------
> [ERROR] BUILD FAILURE
> [INFO] ------------------------------------------------------------------------
> [INFO] Compilation failure
> Unable to locate the Javac Compiler in:
>   /usr/lib/java/../lib/tools.jar
> Please ensure you are using JDK 1.4 or above and
> not a JRE (the com.sun.tools.javac.Main class is required).
> In most cases you can change the location of your Java
> installation by setting the JAVA_HOME environment variable.
> [INFO] ------------------------------------------------------------------------
> [INFO] For more information, run Maven with the -e switch
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 3 seconds
> [INFO] Finished at: Wed Aug 19 11:10:59 BRT 2009
> [INFO] Final Memory: 9M/65M
> [INFO] ------------------------------------------------------------------------
> leonardo@sombriks:~/NetBeansProjects/arena/arena-client$

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira