OS X Mavericksを使用していて、JDKをアップグレードした後、antでコンパイルできなくなりました。
私は通常のグーグルを実行しましたが、回答の大部分はJava_HOMEが設定されていないことを示しています。
私のstackoverflowを助けてください、あなたは私の唯一の希望です!
役に立つかもしれない情報
$ tail -n1 /etc/profile
export Java_HOME=$(/usr/libexec/Java_home -v 1.7)
$ echo $Java_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
$ which javac
/usr/bin/javac
$ ls -lah /usr/bin/javac
lrwxr-xr-x 1 root wheel 75B 8 Jan 11:23 /usr/bin/javac -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
$ ls -lah /System/Library/Frameworks/JavaVM.framework/Versions/
total 80
drwxr-xr-x 13 root wheel 442B 19 Mar 10:10 .
drwxr-xr-x 12 root wheel 408B 19 Mar 09:59 ..
lrwxr-xr-x 1 root wheel 10B 8 Jan 11:23 1.4 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10B 8 Jan 11:23 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10B 8 Jan 11:23 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10B 8 Jan 11:23 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10B 8 Jan 11:23 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10B 8 Jan 11:23 1.6.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10B 19 Mar 10:10 1.7 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10B 19 Mar 10:10 1.7.0 -> CurrentJDK
drwxr-xr-x 8 root wheel 272B 8 Jan 11:23 A
lrwxr-xr-x 1 root wheel 1B 8 Jan 11:23 Current -> A
lrwxr-xr-x 1 root wheel 58B 19 Mar 10:10 CurrentJDK -> /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents
$ javac -version -source 1.7 -target 1.7 -fork true
javac 1.7.0_51
javac: invalid source release: 1.7
Usage: javac <options> <source files>
努力と問題の絞り込みを手伝ってくれた@ david-wに感謝します。
解決するために、私はしなければなりませんでした
Sudo cp $Java_HOME/lib/tools.jar /Library/Java/Extensions/
前述のように ここ
愚かなOSx
受け入れられた答えの解決策は私にはうまくいきませんでした。エラーが発生しました:
tools.jar:そのようなファイルやディレクトリはありません。
しかし、私は実用的な解決策を見つけました ここ 。要するに、私は Oracle Webサイトのjdkの最新バージョン をインストールしました。これで問題は解決します。
私もOSX Mavericksを使用しており、OracleのJava 1.7.0_51です。-fork
オプションはありませんが、他はすべて正常に機能しているようです。
public class HelloWorld
{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
$ javac -version -source 1.7 -target 1.7 -fork true *.Java
javac 1.7.0_51
javac: invalid flag: -fork
Usage: javac <options> <source files>
use -help for a list of possible options
$ javac -version -source 1.7 -target 1.7 *.Java
javac 1.7.0_51
$ # Everything compiled...
OpenJDKまたはOracleの公式リリースを使用していますか? OpenJDKがバージョン1.7をまだ認識していない可能性があります。私は、OpenJDKが公式のOracleリリースの背後にあることを知っています。
-source
と-target
を省略した場合はどうなりますか?1.6
ではなく1.7
で動作しますか?表示されるエラーメッセージは、1.8
を試したときに表示されるエラーメッセージと同じです。コマンドラインから、またはEclipseから、またはAntからコンパイルしようとしていますか?
もう1つの最後の可能性:.
はピリオドではありません:
$ javac -version -source 1․7 -target 1.7 *.Java
javac: invalid source release: 1․7
Usage: javac <options> <source files>
use -help for a list of possible options
それは期間ではありません。 終止符e2:80:a4
であり、終止符/ピリオド(2e
)ではありません。
0000000 j a v a c - v e r s i o n -
6a 61 76 61 63 20 2d 76 65 72 73 69 6f 6e 20 2d
0000020 s o u r c e 1 ․ ** ** 7 - t a
73 6f 75 72 63 65 20 31 e2 80 a4 37 20 2d 74 61
0000040 r g e t 1 . 7 * . j a v a \n
72 67 65 74 20 31 2e 37 20 2a 2e 6a 61 76 61 0a
0000060