I found this on a Forum online: "Does the javac task in your buildfile have fork="yes"? If not, then it doesn't matter what the java.home property is set to; ant will attempt to call the javac Main method in the same java process, which from your error is a JRE, not a JDK.
*EDIT* Try setting the executable property of your javac task to the full path to the javac binary. ---------------- I was looking for something like the "executable" property and just didn't see it. It's annoying that I have to set it for each javac task, but it works. Thanks." Does it ring any bells to any one?? Is it possible to set fork=yes programmatically? -- David Nemer Sent from Kaiserslautern, RP, Germany On Sat, May 16, 2009 at 6:52 PM, David Nemer <davidne...@gmail.com> wrote: > Hello Everyone, > > So here's what I did... I modified the source file JavaEnvUtils.java from > ANT (ant.jar), I changed the line #47: > > private static final String JAVA_HOME = System.getProperty("java.home"); > to: private static final String JAVA_HOME = System.getenv("JAVA_HOME"); > > I compiled everything and added the JavaEnvUtils.class into ant.jar.. > everything seemed to be working fine, but then I got the error msg: > > Unable to find a javac compiler; > com.sun.tools.javac.Main is not on the classpath. > Perhaps JAVA_HOME does not point to the JDK. > It is currently set to "/opt/jdk1.6.0_06" > > Now, ANT goes to my JDK folder, it gets the right JAVA_HOME path, with no > JRE, but it still says that it is not a JDK java!! > > I'm about to give up... I dunno what else to do... > > HELP please!!! Ant is driving me crazy!!! > > -- > David Nemer > Sent from Kaiserslautern, RP, Germany > > On Sat, May 16, 2009 at 6:07 PM, David Nemer <davidne...@gmail.com> wrote: > >> Hello Ashley, >> >> So I ran the code you suggested and >> >> System.out.println("JAVA_HOME: " + System.getenv("JAVA_HOME")); >> System.out.println("PATH: " + System.getenv("JAVA_HOME")); >> >> Prints the right path to the JDK. So, would you suggest me to go into the >> ANT CompilerAdapterFactory.java source file and modify the >> "System.getProperty("java.home")" to System.getenv("JAVA_HOME") ? >> >> I can't think of anything else in order to solve this. >> >> Derek, when you told me to do this: "AntClassLoader ACL = new >> AntClassLoader(antproject, path, true);" what else am I supposed to do?? >> Just set the AntClassLoader to the ant project, path = null, and true? Am I >> supposed to use ACL for anything else? >> >> Cheers, >> -- >> David Nemer >> Sent from Kaiserslautern, RP, Germany >> >> On Sat, May 16, 2009 at 5:25 PM, Ashley Williams <ashpub...@mac.com>wrote: >> >>> Try adding these lines to the start of main(): >>> >>> System.out.println("java.home: " + System.getProperty("java.home")); >>> System.out.println("JAVA_HOME: " + System.getenv("JAVA_HOME")); >>> System.out.println("PATH: " + System.getenv("JAVA_HOME")); >>> >>> Ant will print out the error message if it can't find the class >>> com.sun.tools.javac.Main >>> via the classloader, so I would suggest you convince yourself that your >>> program can find >>> that class. Usually this will be true if you are running the program with >>> jdk/bin/java and not jdk/jre/bin/java, >>> regardless of JAVA_HOME and java.home. >>> >>> Try modifying the ant launch script and hardcode a path to jdk/bin/java - >>> if you no longer get >>> a warning message then you know you are on the right track. >>> >>> >>> >>> On 16 May 2009, at 15:11, David Nemer wrote: >>> >>> Hello Martin, >>>> >>>> The vars are all set up right. And it is "not" an ANT problem. The >>>> problem >>>> is that the "java.home" points to JAVA_HOME/jre , if I ever call this >>>> method >>>> "System.getProperty("java.home");" it will return to me JAVA_HOME/jre >>>> (/opt/jdk1.6.0_06/jre in my case). And all we want is the pure JAVA_HOME >>>> (no >>>> /jre). >>>> >>>> So I found this interesting post that explains better: >>>> >>>> "println ( System.properties.'java.home' ); >>>> >>>> prints the path to the JRE for me as well. This is of course not >>>> surprising >>>> and exactly as it should be since this is the path to the JVM, not to >>>> the >>>> JDK. >>>> >>>> I think it is clear that the Ant error message is completely misleading. >>>> I >>>> have added a bug report in the Ant Bugzilla (43794). >>>> >>>> I think we have to find out what Ant does internally to allow the javac >>>> task >>>> to run, so that we know how Ant gets round this problem." >>>> >>>> >>>> >>>> -- >>>> David Nemer >>>> Sent from Kaiserslautern, RP, Germany >>>> >>>> On Sat, May 16, 2009 at 3:50 PM, Martin Gainty <mgai...@hotmail.com> >>>> wrote: >>>> >>>> >>>>> Herr Nemer >>>>> >>>>> you would'nt be able to run ANT if your JAVA environment vars was >>>>> fouled up >>>>> JRE_HOME points to JRE folder (which contains only java.exe) >>>>> JDK_HOME points to location of BASE FOLDER of javac.exe >>>>> PATH=%JDK_HOME%/bin >>>>> >>>>> Mit Freundliche Gruben >>>>> Martin >>>>> GMT+5 >>>>> das Amerika >>>>> ______________________________________________ >>>>> Jogi és Bizalmassági kinyilatkoztatás/Verzicht und >>>>> Vertraulichkeitanmerkung/Note de déni et de confidentialité >>>>> Ez az >>>>> üzenet bizalmas. Ha nem ön az akinek szánva volt, akkor kérjük, hogy >>>>> jelentse azt nekünk vissza. Semmiféle továbbítása vagy másolatának >>>>> készítése nem megengedett. Ez az üzenet csak ismeret cserét szolgál és >>>>> semmiféle jogi alkalmazhatósága sincs. Mivel az electronikus üzenetek >>>>> könnyen megváltoztathatóak, ezért minket semmi felelöség nem terhelhet >>>>> ezen üzenet tartalma miatt. >>>>> >>>>> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene >>>>> Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede >>>>> unbefugte >>>>> Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese >>>>> Nachricht >>>>> dient lediglich dem Austausch von Informationen und entfaltet keine >>>>> rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von >>>>> E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen. >>>>> Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas >>>>> le >>>>> destinataire prévu, nous te demandons avec bonté que pour satisfaire >>>>> informez l'expéditeur. N'importe quelle diffusion non autorisée ou la >>>>> copie >>>>> de ceci est interdite. Ce message sert à l'information seulement et >>>>> n'aura >>>>> pas n'importe quel effet légalement obligatoire. Étant donné que les >>>>> email >>>>> peuvent facilement être sujets à la manipulation, nous ne pouvons >>>>> accepter >>>>> aucune responsabilité pour le contenu fourni. >>>>> >>>>> >>>>> >>>>> >>>>> Date: Sat, 16 May 2009 15:36:19 +0200 >>>>>> Subject: Re: Java in JDK but ANT can't find it! >>>>>> From: davidne...@gmail.com >>>>>> To: user@ant.apache.org >>>>>> >>>>>> Hello Supareno, >>>>>> >>>>>> I running it using the command line (running in a linux-server ). And >>>>>> ant >>>>>> >>>>> is >>>>> >>>>>> also running properly. >>>>>> >>>>>> Cheers, >>>>>> -- >>>>>> David Nemer >>>>>> >>>>>> >>>>>> On Sat, May 16, 2009 at 12:51 PM, supareno <reno.rkc...@free.fr> >>>>>> wrote: >>>>>> >>>>>> David , >>>>>>> >>>>>>> are you using an IDE to run this simple code or are you using the >>>>>>> >>>>>> command >>>>> >>>>>> line? >>>>>>> is the 'ant' command line tool is working properly in a terminal? >>>>>>> >>>>>>> supareno >>>>>>> >>>>>>> >>>>>>> Hey all, >>>>>>> >>>>>>>> >>>>>>>> Well, I did some testing, and I tried to run this simples Java code: >>>>>>>> >>>>>>>> public static void main(String args[]){ >>>>>>>> >>>>>>>> String JAVA_HOME = System.getProperty("java.home"); >>>>>>>> System.out.println(JAVA_HOME); >>>>>>>> >>>>>>>> } >>>>>>>> >>>>>>>> And it prints out: /opt/jdk1.6.0_06/jre >>>>>>>> >>>>>>>> So, as Ashley said before, it is not an Ant's problem, it is an >>>>>>>> environment >>>>>>>> or Java problem. >>>>>>>> >>>>>>>> But, I checked, both, bash_profile and bashrc, and they all point to >>>>>>>> /opt/jdk1.6.0_06, no JRE at all. So I was wondering where else could >>>>>>>> I >>>>>>>> look >>>>>>>> at so I can find where this JRE is set. >>>>>>>> >>>>>>>> Does anyone know where the method System.getProperty goes to get the >>>>>>>> java.home? Like a file or something like that?? >>>>>>>> >>>>>>>> Cheers >>>>>>>> >>>>>>>> PS: I also used that code to call and in my java code. >>>>>>>> >>>>>>>> -- >>>>>>>> David Nemer >>>>>>>> Sent from Kaiserslautern, RP, Germany >>>>>>>> >>>>>>>> On Thu, May 14, 2009 at 5:36 PM, Ashley Williams <ashpub...@mac.com >>>>>>>> > >>>>>>>> wrote: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> I did a lot of copying and pasting from this website to get my own >>>>>>>>> >>>>>>>> code >>>>> >>>>>> up >>>>>>>>> and running: >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>> http://www.ibm.com/developerworks/websphere/library/techarticles/0502_gawor/0502_gawor.html >>>>> >>>>>> >>>>>>>>> However I still believe the problem is with your environment rather >>>>>>>>> >>>>>>>> than >>>>> >>>>>> your code. >>>>>>>>> Try editing the ant batch file or shell script in order to print >>>>>>>>> out >>>>>>>>> JAVA_HOME and PATH and >>>>>>>>> just at the point where it runs >>>>>>>>> org.apache.tools.ant.launch.Launcher. >>>>>>>>> >>>>>>>>> Then print out all environment variables at the top of your >>>>>>>>> build.xml >>>>>>>>> file. >>>>>>>>> And print out >>>>>>>>> java.home at the start of your java application. >>>>>>>>> >>>>>>>>> If you are forking the compiler, could it not be inheriting the >>>>>>>>> environment >>>>>>>>> correctly? >>>>>>>>> >>>>>>>>> >>>>>>>>> On 14 May 2009, at 16:22, Cole, Derek E wrote: >>>>>>>>> >>>>>>>>> Ashley, can you post a snippet of how you set up the project you >>>>>>>>> >>>>>>>> launch >>>>> >>>>>> >>>>>>>>> >>>>>>>>> programmatically from java? >>>>>>>>>> >>>>>>>>>> What does your build file that you are running from java contain >>>>>>>>>> in >>>>>>>>>> >>>>>>>>> it? >>>>> >>>>>> >>>>>>>>>> -----Original Message----- >>>>>>>>>> From: Ashley Williams [mailto:ashpub...@mac.com] >>>>>>>>>> Sent: Thursday, May 14, 2009 10:54 AM >>>>>>>>>> To: Ant Users List >>>>>>>>>> Subject: Re: Java in JDK but ANT can't find it! >>>>>>>>>> >>>>>>>>>> Check your PATH to make sure you are launching your application >>>>>>>>>> from >>>>>>>>>> the jdk and not the jre. >>>>>>>>>> >>>>>>>>>> I launch programatically and I don't get these errors with the >>>>>>>>>> same >>>>>>>>>> version of ant so it does >>>>>>>>>> sound as if the problem lies outside of ant. >>>>>>>>>> >>>>>>>>>> On 14 May 2009, at 15:46, David Nemer wrote: >>>>>>>>>> >>>>>>>>>> This is what I'm trying to tell you! My JAVA_HOME it is set as >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> /opt/jdk1.6.0_06 I've triple checked it on my bash file! I also >>>>>>>>>>> check with >>>>>>>>>>> echo $JAVA_HOME and which java, they all tell the right path, but >>>>>>>>>>> not ANT! >>>>>>>>>>> This is why I don't understand where does ant get this /jre !! >>>>>>>>>>> -- >>>>>>>>>>> David Nemer >>>>>>>>>>> Sent from Kaiserslautern, RP, Germany >>>>>>>>>>> >>>>>>>>>>> On Thu, May 14, 2009 at 4:42 PM, Ashley Williams < >>>>>>>>>>> >>>>>>>>>> ashpub...@mac.com> >>>>> >>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> In your description you say that JAVA_HOME=/opt/jdk1.6.0_06/jre >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Seriously, try JAVA_HOME= /opt/jdk1.6.0_06 instead >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 14 May 2009, at 15:28, Cole, Derek E wrote: >>>>>>>>>>>> >>>>>>>>>>>> When I had this problem, I KNOW that JAVA_HOME was set >>>>>>>>>>>> correctly. >>>>>>>>>>>> >>>>>>>>>>> I >>>>> >>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> still ran into the problem. The OP here also said JAVA_HOME was >>>>>>>>>>>>> >>>>>>>>>>>> set >>>>> >>>>>> correctly. There is some missing step here that prevents the ant >>>>>>>>>>>>> Project >>>>>>>>>>>>> instance from knowing which Java to use. >>>>>>>>>>>>> >>>>>>>>>>>>> -----Original Message----- >>>>>>>>>>>>> From: Ashley Williams [mailto:ashpub...@mac.com] >>>>>>>>>>>>> Sent: Thursday, May 14, 2009 9:56 AM >>>>>>>>>>>>> To: Ant Users List >>>>>>>>>>>>> Subject: Re: Java in JDK but ANT can't find it! >>>>>>>>>>>>> >>>>>>>>>>>>> It looks like you are pointing to the jre not the jdk. >>>>>>>>>>>>> Try repointing the JAVA_HOME environment variable to the jdk >>>>>>>>>>>>> directory >>>>>>>>>>>>> instead, >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On 14 May 2009, at 13:15, David Nemer wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Hello Everyone, >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> I am running ANT programmatically in JAVA. So, my task is to >>>>>>>>>>>>>> build the >>>>>>>>>>>>>> BUILD.XML. >>>>>>>>>>>>>> I'm able to do so, but it throws an exception saying: >>>>>>>>>>>>>> >>>>>>>>>>>>>> /scratch2/nemer/test/xfire/build.xml:5: The following error >>>>>>>>>>>>>> occurred >>>>>>>>>>>>>> while >>>>>>>>>>>>>> executing this line: >>>>>>>>>>>>>> /scratch2/nemer/test/xfire/build-common.xml:81: Unable to find >>>>>>>>>>>>>> a >>>>>>>>>>>>>> javac >>>>>>>>>>>>>> compiler; >>>>>>>>>>>>>> com.sun.tools.javac.Main is not on the classpath. >>>>>>>>>>>>>> Perhaps JAVA_HOME does not point to the JDK. >>>>>>>>>>>>>> It is currently set to "/opt/jdk1.6.0_06/jre" >>>>>>>>>>>>>> >>>>>>>>>>>>>> But in the end it says: BUILD SUCCESSFUL (but it still throws >>>>>>>>>>>>>> >>>>>>>>>>>>> that >>>>> >>>>>> exception). >>>>>>>>>>>>>> >>>>>>>>>>>>>> I already set all of my environment variables to >>>>>>>>>>>>>> >>>>>>>>>>>>> /opt/jdk1.6.0_06/ >>>>> >>>>>> (JAVA_HOME and also in PATH), which is a JDK! And even on the >>>>>>>>>>>>>> >>>>>>>>>>>>> error >>>>> >>>>>> message >>>>>>>>>>>>>> it says that the java is set to /opt/jdk1.6.0_06/jre (which is >>>>>>>>>>>>>> a >>>>>>>>>>>>>> JDK, I >>>>>>>>>>>>>> don't know where it gets the jre from). >>>>>>>>>>>>>> >>>>>>>>>>>>>> So, does any one know how can I solve this problem? Is there a >>>>>>>>>>>>>> configuration >>>>>>>>>>>>>> file in ANT that we need to set up! I'm stuck there!! >>>>>>>>>>>>>> >>>>>>>>>>>>>> I'm running the ant 1.7.1. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Cheers, >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> David Nemer >>>>>>>>>>>>>> Sent from Saarbrucken, SL, Germany >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> --------------------------------------------------------------------- >>>>> >>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> For additional commands, e-mail: user-h...@ant.apache.org >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> --------------------------------------------------------------------- >>>>> >>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> For additional commands, e-mail: user-h...@ant.apache.org >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> --------------------------------------------------------------------- >>>>> >>>>>> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org >>>>>>>>>>>> For additional commands, e-mail: user-h...@ant.apache.org >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> --------------------------------------------------------------------- >>>>> >>>>>> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org >>>>>>>>>> For additional commands, e-mail: user-h...@ant.apache.org >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> --------------------------------------------------------------------- >>>>> >>>>>> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org >>>>>>>>>> For additional commands, e-mail: user-h...@ant.apache.org >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> --------------------------------------------------------------------- >>>>>>>>> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org >>>>>>>>> For additional commands, e-mail: user-h...@ant.apache.org >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org >>>>>>> For additional commands, e-mail: user-h...@ant.apache.org >>>>>>> >>>>>>> >>>>>>> >>>>> _________________________________________________________________ >>>>> Hotmail® goes with you. >>>>> >>>>> >>>>> http://windowslive.com/Tutorial/Hotmail/Mobile?ocid=TXT_TAGLM_WL_HM_Tutorial_Mobile1_052009 >>>>> >>>>> >>> >> >