Jdk1.7 javac не может найти javafx jar без опции -cp

Я прочитал несколько вопросов на этом сайте и в другом месте, которые показывают, что при установке Oracle JDK7 не обязательно указывать путь к jfxrt.jar при правильной установке JDK. К сожалению, моя установка не кажется правильной, но я не могу понять, что не так.

Я использовал правильный RPM для моего Red Hat Enterprise Linux 6.2 Server, и я могу создавать приложения JavaFX в Eclipse, когда я добавил jfxrt.jar к внешним банкам. Но, пытаясь скомпилировать и запустить из командной строки, он не найдет классы JavaFX, если я не укажу параметр -cp для javac и java. Первоначально сервер использовал openjdk-1.6, но я использовал альтернативы для настройки javac и java, чтобы указать на недавно установленный JDK. Похоже, что это нормально работает, за исключением этой проблемы.

Я обнаружил, что эта же проблема преследовала меня при попытке запустить JavaFX Exporter. Я пытался экспортировать проект, который отлично работает в Eclipse. Но при попытке запуска он не смог найти классы JavaFX. И я не разработал, как сообщить экспортеру, где находится файл jfxrt.jar.

Для справки, jfxrt.jar находится в /usr/java/jdk 1.7.0_21/jre/lib/jfxtr.jar в моей системе.

Ответ 1

когда установлен Oracle JDK7, нет необходимости указывать путь к jfxrt.jar, если JDK установлен правильно.

Это неверно.

Если вы хотите скомпилировать и запустить приложение JavaFX в Java 7 (u21), и вы не используете инструменты для упаковки JavaFX, вы необходимо добавить jfxrt.jar в ваш путь к классам.

См. Компилировать код с использованием JavaFX 2.0 (используя командную строку) для образцов настройки пути JavaFX для компиляции (с помощью javac) и запуска (с помощью java) JavaFX 2 приложения из командной строки.

Некоторые IDE-расширения или расширения IDE знают об этом и автоматически добавят jfxrt.jar в ваш путь к классам (например, плагин e (fx) клипса или тип проекта NetBeans JavaFX).

Некоторые сторонние инструменты, такие как JavaFX Maven Plugin или JavaFX Gradle Plugin также пакет приложений JavaFX, так что вам не нужно добавлять jfxrt.jar в свой путь к классам.

Для разработки Eclipse рекомендуется использовать e (fx) плагин для клипов, так как он заботится о проблемах с classpath (а также предоставляя другие полезные возможности разработчикам JavaFX).

Для Java 8, jfxrt.jar находится в пути по умолчанию по умолчанию, поэтому вам не нужно явно указывать свой путь к классам для использования JavaFX с такими инструментами, как javac.exe или java.exe для этой версии Java.

Ответ 2

OpenJdk7 не включает jfxrt.jar. Используйте Oracle Jdk7 вместо этого.