Ответ 1
Благодаря @david-w за усилия и помогая сузить проблему.
Чтобы решить, мне пришлось
sudo cp $JAVA_HOME/lib/tools.jar /Library/Java/Extensions/
как упоминалось здесь
глупый os x
Используя OS X Mavericks, и после обновления моего JDK, я больше не могу компилироваться с ant.
Я сделал обычный поиск в Google, и подавляющее большинство ответов указывают на то, что 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/
как упоминалось здесь
глупый os x
Решение в принятом ответе не сработало для меня; Я получил ошибку:
tools.jar: Нет такого файла или каталога.
Однако я нашел рабочее решение здесь. Короче говоря, я установил последнюю версию jdk с веб-сайта Oracle, и это решает проблему.
Я тоже на OS X Mavericks тоже с Java 1.7.0_51 от Oracle. Нет опции -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?
Еще одна окончательная возможность: .
не является периодом:
$ 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