mojohaus / maven-native

https://www.mojohaus.org/maven-native/
MIT License
18 stars 12 forks source link

native-maven-plugin seems to use javah from the path, not from $JAVA_HOME #2

Open ctubbsii opened 8 years ago

ctubbsii commented 8 years ago

I receive the following error message when building with multiple JDKs installed on the system. The default system java, javac, javah, etc. are using JDK7, while JAVA_HOME is set to JDK8. Normally, maven would use JAVA_HOME to build everything.

Plugin: org.codehaus.mojo:native-maven-plugin:1.0-alpha-8 Goal: javah Phase: compile Configuration:

<javahClassNames>
  <javahClassName>path.to.ClassFile</javahClassName>
</javahClassNames>

It appears that the javah command this plugin selected to use was the one from the path, not the one from JAVA_HOME like the rest of the maven plugins do. This is incorrect behavior, and resulted in the following error:

/path/to/JarFile.jar(path/to/ClassFile.class): major version 52 is newer than 51, the highest major version supported by this compiler.
dantran commented 8 years ago

we will need to extend the plugin to set the java home directory

ctubbsii commented 8 years ago

Ugh. This just hit me again, because I'm trying to build on a Jenkins server using Java 1.6, but the javah on the system path is from Java 1.8.

asymetrixs commented 5 years ago

What is the status of this issue?

ctubbsii commented 5 years ago

The javah goal of this plugin should be considered deprecated as of Java 8. The javah tool was removed sometime after Java 8. The functionality was moved into javac. So, this isn't really important anymore.

josetesan commented 5 years ago

Just for anyone that ends up here. It can be solved with alpha-9 version, and following plugin configuration :

 <configuration>
     <javahPath>${JAVA_HOME}/bin/javah</javahPath>
     <javahClassNames>
            <javahClassName>com.acme.MyClass</javahClassName>
      </javahClassNames>
 </configuration>