私はUbuntu 11.04にJettyをインストールしようとしています。私はクラスパスの問題にぶつかっています。私はJDKを指すようにJAVA_HOMEを設定してstart.jarでJettyを起動します。UbuntuにJettyをインストールすると、com.sun.tools.javac.Mainがクラスパスにありません
/usr/share/jetty$ export JAVA_HOME=/usr/lib/jvm/java-6-sun
/usr/share/jetty$ java -jar start.jar
[...]
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/lib/jvm/java-6-sun-1.6.0.26/jre"
at org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(CompilerAdapterFactory.java:127)
...
私が設定したJAVA_HOMEとjreを無視していることに注意してください。私もこれを試した:
java -classpath /usr/lib/jvm/java-6-sun/lib/tools.jar -jar start.jar
同じエラーメッセージ。それは見つけることができません、com.sun.tools.javac.Main、それはtools.jarにあります。
私の.jspをコンパイルしようとしているときに、Jettyの邪魔になって、Antを使用しています。クラスローダーのトリックをやっていると思います。私のtools.jarファイルが見つかることができるこの気味悪なソフトウェアを秘密に伝えることは誰にも分かっていますか?
私はsun jdkとopenjdkで同じエラーが発生していることに注意してください。はい、JREだけでなくJDKもインストールしています。
apt-getがjavaをインストールする方法では、JDKの一部であるJavaバイナリがJREを指しています。このように:
ls -alph /usr/lib/jvm/java-6-sun/bin/java
lrwxrwxrwx 1 root root 15 2011-10-25 18:48 /usr/lib/jvm/java-6-sun/bin/java -> ../jre/bin/java
私は突堤、ジャスパーやAntは試してみて、Javaの実行可能ファイルの場所に基づいてtools.jarを見つけるためにいくつかの策略をしていることを推測している、そしてそれは、ここで失敗しているものです。
すべての手がかりは非常に高く評価されています。ありがとう!
'java-6-sun'ディレクトリはリンクですか? (IMOでは、JDKを "jvm"と呼ぶのは変です。) –
'export'の後に 'echo $ JAVA_HOME'を試して、それがどこを指しているのかを見て、JDKのhomeの下のbinディレクトリをエクスポートしてください:' export PATH = $ PATH:$ JAVA_HOME/bin'。 – ahmedyha
ls -alph/usr/lib/jvm/java-6-sun lrwxrwxrwx 1 root root 19 2011-10-25 18:48/usr/lib/jvm/java-6-sun - > java-6-sun- 1.6.0.26/ – cbare