Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / August 2007

Tip: Looking for answers? Try searching our database.

java.lang.IllegalStateException: No Java compiler available

Thread view: 
muttley - 22 Aug 2007 17:01 GMT
tearing my hair out on this one.
Thuis started as an upgrade issue till i realised that my un-used
tomcat5 installation didn't work either with my test jsp.

I have, in desparation, un-installed all java / tomcat libs and re-
installed only those required to get the
tomcat6-6.0.14-1jpp.noarch.rpm (and the band-waggon) loaded

first I installed java_app_platform_sdk-5_02-linux.bin
this shows (after I set alternatives to point to the /opt/SDK/jdk
direcrtory)

[root@squirrel ~]# javac -version
javac 1.6.0

java shows the same.

I have set the following in profile

CLASSPATH=$JDKHOME:$JDKHOME/lib/tools.jar

JAVA_HOME="/opt/SDK/jdk"
JDKHOME=$JAVA_HOME
JREHOME=$JAVA_HOME/jre
JFCHOME=$JAVA_HOME/jfc
JRECP=$JREHOME/lib/rt.jar

CATALINA_HOME=/usr/share/tomcat6

export JAVA_HOME JDKHOME JREHOME JFCHOME JRECP CLASSPATH CATALINA_HOME

tomcat6.conf: -
JAVA_HOME="/opt/SDK/jdk"

# Where your tomcat installation lives
CATALINA_BASE="/usr/share/tomcat6"
CATALINA_HOME="/usr/share/tomcat6"
JASPER_HOME="/usr/share/tomcat6"
CATALINA_TMPDIR="/var/tmp/tomcat6"

The logs give no indication why it fails it just keeps saying that it
can't find a compiler.

All the posts point to stuff I've already tried (including copying the
tools.jar file into the /bin directory of tomcat6

Anybody got an idea?
Manish Pandit - 22 Aug 2007 17:50 GMT
> tearing my hair out on this one.
> All the posts point to stuff I've already tried (including copying the
> tools.jar file into the /bin directory of tomcat6
>
> Anybody got an idea?

Do you mean copying the tools.jar to /common/lib of your tomcat
installation ? Copying in /bin will not help.
You can try 'which java' to see where is the java being picked from.
It might not be /opt/SDJ/jdk.

-cheers,
Manish
Lew - 23 Aug 2007 00:14 GMT
muttley wrote:
> first I installed java_app_platform_sdk-5_02-linux.bin

That isn't Core Java.  That's a Sun JEE container.

You want jdk_6u2_linux_i586.bin instead.

> this shows (after I set alternatives to point to the /opt/SDK/jdk
> direcrtory)
>
> [root@squirrel ~]# javac -version
> javac 1.6.0
> java shows the same.

Clearly you haven't uninstalled Java, since the install you cite isn't the JDK.

> I have set the following in profile
>
> CLASSPATH=$JDKHOME:$JDKHOME/lib/tools.jar

Uh, no.  Since you set

> JAVA_HOME="/opt/SDK/jdk"
> JDKHOME=$JAVA_HOME

then $JDKHOME is the root of the installation, not the root of a classpath.

You also don't need to include Java itself in its own classpath.

> JREHOME=$JAVA_HOME/jre
> JFCHOME=$JAVA_HOME/jfc
[quoted text clipped - 6 lines]
> tomcat6.conf: -
> JAVA_HOME="/opt/SDK/jdk"

Why declare this both places?

> # Where your tomcat installation lives
> CATALINA_BASE="/usr/share/tomcat6"
> CATALINA_HOME="/usr/share/tomcat6"

Again, why declare it both places?

> JASPER_HOME="/usr/share/tomcat6"
> CATALINA_TMPDIR="/var/tmp/tomcat6"
>
> The logs give no indication why it fails it just keeps saying that it
> can't find a compiler.

Probably because you haven't set up /usr/bin/java or else included
$JAVA_HOME/bin in your PATH.

In my Linux I've run:

alternatives --install \
    /usr/java/java    jdk  /opt/java/jdk1.6.0_02 1600     \
--slave /usr/java/jre jre  /opt/java/jdk1.6.0_02/jre      \
--slave /usr/bin/java java /opt/java/jdk1.6.0_02/bin/java \
--slave /usr/bin/rmiregistry rmiregistry  \
    /opt/java/jdk1.6.0_02/bin/rmiregistry

That ensures that "java" is in my path.  You could extend that to include "javac".

Signature

Lew

muttley - 23 Aug 2007 16:09 GMT
> muttley wrote:
> > first I installed java_app_platform_sdk-5_02-linux.bin
[quoted text clipped - 66 lines]
> --
> Lew

Thank you all for your constructive comments.

It turns out after I tried all this and more, that there is a file in
the tomcat6 directory
/lib called jasper-jdt.jar that tells it to use the [standard] eclipse
jdt compiler,
This was *missing* from the rpm based installation I loaded. I loaded
the binary distro from apache and hey presto the sample jps compile,
and so does my (ha, ha) simple five minute jsp to test file upload
speeds.
I did r the fm, (http://tomcat.apache.org/tomcat-6.0-doc/jasper-
howto.html) but the relevant clue was on using alternative compilers
as there is NO default one. If this jar is missing, and there is no
ant jar, the tomcat install is simply unable to compile, and won't
tell you why.

I'll forward this message to the RPM packager.

Kevin.
Manish Pandit - 23 Aug 2007 18:14 GMT
> This was *missing* from the rpm based installation I loaded. I loaded
> the binary distro from apache and hey presto the sample jps compile,
> and so does my (ha, ha) simple five minute jsp to test file upload
> speeds.

Not sure if you're using Fedora, but if you are, I've found 'yum' as a
good alternative to downloading and installing  rpms manually.

-cheers,
Manish
Martin Gregorie - 23 Aug 2007 20:00 GMT
> Not sure if you're using Fedora, but if you are, I've found 'yum' as a
> good alternative to downloading and installing  rpms manually.

Indeed.

1) First try "yum list <package>". If that finds the package use
  "yum install" to install it, otherwise its not supported by Fedora.

2)Next try http://rpmfind.net/ to see if ther's an RPM available for
  Fedora. If so, download and install, repeating for any dependencies
  it may have, preferably making sure that it gets installed in
  /usr/local. It its put elsewhere you may want to uninstall and go to
  step 3

3)Go to the package home and see what they offer and download the most
  suitable form. If thats source tarballs compile them: if binaries,
  unpack them. Install the binaries in /usr/local and put the config
  files where directed, but use /usr/local/etc if you get the choice.

Signature

martin@   | Martin Gregorie
gregorie. | Essex, UK
org       |



Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.