[ 
http://jira.codehaus.org/browse/MCOMPILER-144?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=262535#action_262535
 ] 

Jesse Glick commented on MCOMPILER-144:
---------------------------------------

The JRE does indeed include an API for invoking the Java compiler - but the 
implementation is still in {{tools.jar}}, so calling it from a bare JRE will 
just produce an error. Also the API is not available in Java 5 which Maven 
still supports (for running itself).

On the other hand, it would be possible to publish the version of javac in 
OpenJDK 6 and/or 7 in Central and then use this as a runtime-scope dependency 
for the compiler plugin. This would also allow your project to determine 
exactly which compiler it is using, rather than being at the mercy of the 
user's JDK; see my Aug 2010 comments in MNG-1867. The version from OpenJDK 6 is 
probably unusable since AFAIK bug fixes from JDK 6 updates do not get 
backported to it; the version from OpenJDK 7 is much better and contains many 
critical fixes especially for people using annotation processors (see e.g. 
MCOMPILER-122).

> Using compiler API instead of tools.jar
> ---------------------------------------
>
>                 Key: MCOMPILER-144
>                 URL: http://jira.codehaus.org/browse/MCOMPILER-144
>             Project: Maven 2.x Compiler Plugin
>          Issue Type: New Feature
>            Reporter: Markus KARG
>            Priority: Minor
>
> Currently (MVN 3.0) java compilation needs tools.jar provided by the Sun JDK:
> [ERROR] Unable to locate the Javac Compiler in:
> [ERROR] C:\Program Files\Java\jre6\..\lib\tools.jar
> [ERROR] Please ensure you are using JDK 1.4 or above and
> [ERROR] not a JRE (the com.sun.tools.javac.Main class is required).
> [ERROR] In most cases you can change the location of your Java
> [ERROR] installation by setting the JAVA_HOME environment variable.
> In fact, this is bad because (a) it assumes that a full JDK is installed just 
> for this sole tool where a JRE would be sufficient, (b) tools.jar is not 
> contained in any standards documents and such possibly is not existing on 
> future or non-sun JDK.
> Since JRE 6 (i. e. for many years) the JRE (not JDK!) comes with a 
> standardized (!) API for compilation: The Java Compiler API. It would make 
> sense to use that standardized API instead of forcing the user to have Sun 
> JDK installed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to