Как установить JavaFx? [Дубликат]

Загружаю JavaFx из здесь . Я поместил его в свой домашний каталог (anto) под именем javafx. Затем я сделал что-то вроде этого:

vi ~/.bashrc

и добавил следующие строки:

javaFx_home=/anto/javafx/rt/lib/jfxrt.jar
export PATH=$PATH:$javaFx_home

Но после предоставления classpath я попытался запустить:

groovy MyProgram

(который зависит от пути JavaFx classpath).

Но это вызывает ошибку. Где я ошибся?

3
задан 4 June 2012 в 08:34

34 ответа

переходите к рассмотрению строки за строкой.

  1. Загрузите скрипт оболочки JavaFX SDK для Linux. Сценарий оболочки JavaFX SDK в большинстве случаев, вероятно, будет загружен в: / home / "your_user_directory" / Downloads
  2. Измените пользователя root, выполнив следующие действия:
  3. Тип / Копирование / Вставить: sudo -s
  4. Тип / Копировать / Вставить: cd / home / "your_user_directory" / Downloads
  5. Тип / Копировать / Вставить: cp -r javafx_sdk-1_3-linux- i586.sh / usr / local
  6. Тип / Копировать / Вставить: cd / usr / local
  7. И как root, сделайте исполняемый файл сценария JavaFX, выполнив следующие команды:
  8. Тип / Копировать / Вставить: sudo chmod a + x javafx_sdk-1_3-linux-i586.sh
  9. Затем выполните сценарий оболочки, запустив либо:

Тип / Копировать / Вставить: sudo ./javafx_sdk-1_3-linux-i586.sh или Тип / Копировать / Вставить: sudo sh javafx_sdk-1_3-linux-i586.sh

  1. Изменить Переменная системного пути Ubuntu Linux в / etc / profile использует текстовый редактор с правами root, например nano или gedit. Тип / Копировать / Вставить: sudo nano / etc / profile или Тип / Копировать / Вставить: sudo gedit / etc / profile
  2. Добавьте следующие строки ниже в ваш общий путь к системе / etc / profile: PATH = $ PATH: $ JAVAFX_HOME: /usr/local/javafx-sdk1.3/bin export JAVAFX_HOME export PATH
  3. Сохранить файл и выйти
  4. Перезагрузите файл / etc / profile, запустив следующая команда: Тип / Копировать / Вставить:. / etc / profile
  5. Откройте терминал в Ubuntu Linux, выполните следующую команду: Type / Copy / Paste: javafx -version

Эта команда позволяет вам узнать, какая версия javafx установлен в вашей системе. Вы должны получить сообщение, подобное: javafx 1.3.1_b101

  1. Также выполните следующую команду: Тип / Копировать / Вставить: javafxc -version Эта команда позволит вам скомпилировать javafx программы с терминала Вы должны получить сообщение, в котором говорится: javafxc 1.3.1_b101
  2. Теперь перезагрузите вашу систему Ubuntu Linux, и JavaFX должен быть полностью установлен для использования.
-5
ответ дан 25 July 2018 в 19:08

У меня такая же проблема, и ответ @samik работает для меня!

В мой ~.bashrc, как @samik скажет:

export JAVAFX_HOME=/usr/lib/jvm/javafx-sdk2.2.0-beta/rt/lib/jfxrt.jar
export CLASSPATH=$CLASSPATH:$JAVAFX_HOME:.

Теперь немного source .profile, и мы попытаемся с примером

touch JavaFxText.java

Я вырезаю / копирую этот примерный код в файл:

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.*;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

/**
 * Simple demonstration of JavaFX text support.
 * 
 * @author Dustin
 */
public class JavaFxText extends Application
{
   /**
    * Start demonstration of JavaFX text capabilities.
    * 
    * @param stage Stage for JavaFX application.
    * @throws Exception Exception in JavaFX application.
    */
   @Override
   public void start(final Stage stage) throws Exception
   {
      stage.setTitle("Simplistic Example of JavaFX 2.0 Text Capabilities");
      final Group rootGroup = new Group();
      final Scene scene =
         new Scene(rootGroup, 800, 400, Color.BEIGE);

      final Text text1 = new Text(25, 25, "(2007) JavaFX based on F3");
      text1.setFill(Color.CHOCOLATE);
      text1.setFont(Font.font(java.awt.Font.SERIF, 25));
      rootGroup.getChildren().add(text1);

      final Text text2 = new Text(25, 50, "(2010) JavaFX Script Deprecated");
      text2.setFill(Color.DARKBLUE);
      text2.setFont(Font.font(java.awt.Font.SANS_SERIF, 30));
      rootGroup.getChildren().add(text2);

      final Text text3 = new Text(25, 75, "(2011) JavaFX to be Open Sourced!");
      text3.setFill(Color.TEAL);
      text3.setFont(Font.font(java.awt.Font.MONOSPACED, 35));
      rootGroup.getChildren().add(text3);

      final Text text4 = new Text(25, 125, "(2011) JavaFX to be Standardized");
      text4.setFill(Color.CRIMSON);
      text4.setFont(Font.font(java.awt.Font.DIALOG, 40));
      final Effect glow = new Glow(1.0);
      text4.setEffect(glow);
      rootGroup.getChildren().add(text4);

      final Text text5 = new Text(25, 175, "(Now) Time for JavaFX 2.0!");
      text5.setFill(Color.DARKVIOLET);
      text5.setFont(Font.font(java.awt.Font.SERIF, FontWeight.EXTRA_BOLD, 45));
      final Light.Distant light = new Light.Distant();
      light.setAzimuth(-135.0);
      final Lighting lighting = new Lighting();
      lighting.setLight(light);
      lighting.setSurfaceScale(9.0);
      text5.setEffect(lighting);
      rootGroup.getChildren().add(text5);

      final Text text6 = new Text(25, 225, "JavaFX News at JavaOne!");
      text6.setFill(Color.DARKGREEN);
      text6.setBlendMode(BlendMode.COLOR_BURN);
      text6.setFont(Font.font(java.awt.Font.DIALOG_INPUT, FontWeight.THIN, 45));
      final Reflection reflection = new Reflection();
      reflection.setFraction(1.0);
      text6.setEffect(reflection);
      rootGroup.getChildren().add(text6);

      stage.setScene(scene);
      stage.show();
   }

   /**
    * Main JavaFX application launching method.
    * 
    * @param arguments Command-line arguments: none expected.
    */
   public static void main(final String[] arguments)
   {
      Application.launch(arguments);
   }
}

И он работает

javac JavaFxText.java
java JavaFxText

Дайте щедрость @samik, он заслуживает!

0
ответ дан 25 July 2018 в 19:08

Вы можете попробовать установить CLASSPATH вместо PATH. Java пытается загрузить свои классы из мест, на которые ссылается CLASSPATH.

  • Сначала проверьте существующий путь класса с помощью echo $CLASSPATH. Подобно PATH, записи для CLASSPATH разделяются с помощью : (двоеточие). Наличие записи . в CLASSPATH означает, что java всегда может загружать классы из текущего каталога.
  • Чтобы добавить библиотеку .jar к вашему CLASSPATH, вы должны открыть файл ~/.profile и добавить к нему export CLASSPATH=$CLASSPATH:path to .jar. Как и в вашем случае это должно быть javaFx_home=/home/anto/javafx/rt/lib/jfxrt.jar export CLASSPATH=$CLASSPATH:$javaFx_home, если . не присутствовало в вашей предыдущей записи CLASSPATH, а затем измените последнюю строку как export CLASSPATH=$CLASSPATH:$javaFx_home:.
1
ответ дан 25 July 2018 в 19:08

Автоматически: (через репозиторий webpd8 хелпер ppa)

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

Примечание. Вы можете заменить oracle-java7-installer на oracle-java8-installer или oracle-java9-installer. Перед установкой вам необходимо будет принять Лицензионное соглашение с конечным пользователем Oracle (это не обязательно для OpenJDK, поэтому, если OpenJDK-back-port выпущен для 12.04, обновите этот пост!:)

Вручную:

2
ответ дан 25 July 2018 в 19:08

Вот что я нашел до сих пор.

Я загрузил JavaFX SDK 1.2 и 2.2. Они удалили некоторые файлы из JavaFX SDK.

Для 1.2

virpara@Ascension:~$ tree -L 2 '/home/virpara/Desktop/javafx-sdk1.2' 
/home/virpara/Desktop/javafx-sdk1.2
|-- bin
|   |-- javafx
|   |-- javafxc
|   |-- javafxdoc
|   `-- javafxpackager
|-- COPYRIGHT.html
|-- docs
|   |-- api
|   |-- emulator.html
|   |-- index.html
|   |-- javafxc.html
|   |-- javafxdoc.html
|   |-- javafx.html
|   |-- javafxpackager.html
|   `-- manpage.css
|-- emulator
|   `-- bin
|-- invoice.properties
|-- lib
|   |-- desktop
|   |-- javafx-runtime.properties
|   |-- mobile
|   `-- shared
|-- LICENSE.txt
|-- profiles
|   |-- desktop.properties
|   `-- mobile.properties
|-- README.html
|-- samples
|   |-- DisplayShelf
|   |-- DisplayShelfMobile
|   |-- DragAndDrop
|   |-- index.html
|   |-- InterestingPhotos
|   |-- LocalSearch
|   |-- MediaBox
|   |-- PathAnimation
|   |-- PhotoEffects
|   |-- PhotoFlip
|   |-- shared
|   `-- SpringAnimation
|-- servicetag
|   `-- registration.jar
|-- src.zip
|-- THIRDPARTYLICENSEREADME.txt
`-- timestamp

23 directories, 23 files

Для 2.2

virpara@Ascension:~$ tree -L 2 '/home/virpara/Desktop/javafx-sdk2.2.0-beta' 
/home/virpara/Desktop/javafx-sdk2.2.0-beta
|-- bin
|   `-- javafxpackager
|-- COPYRIGHT.html
|-- docs
|   `-- api
|-- lib
|   |-- ant-javafx.jar
|   |-- javafx-doclet.jar
|   `-- javafx-mx.jar
|-- README.html
|-- rt
|   |-- COPYRIGHT.html
|   |-- lib
|   |-- README.html
|   `-- THIRDPARTYLICENSEREADME.txt
`-- THIRDPARTYLICENSEREADME.txt

6 directories, 10 files

В javafx-sdk2.2.0-beta/bin (javafx, javafxc, javafxdoc имеется только скрипт javafxpackager скрипты удаляются), это означает, что если вы экспортируете javafx-sdk2.2.0-beta/bin в свою переменную PATH и попытаетесь выполнить javafx --version в терминале, он не сможет найти javafx, потому что нет исполняемого файла с именем javafx.

Ну, у меня нет опыта работы с JavaFX, но, вероятно, они удалили еще три скрипта, потому что это было бы не нужно, и, возможно, javafxpackager выполнит эту задачу или java. Для этого достаточно

Вы пытались включить весь путь к переменной jfxrt.jar в PATH.

он не будет работать, потому что он не может автоматически перейти к параметру -cp. Итак, вы должны указать полный путь к jfxrt.jar как -cp /anto/javafx/rt/lib/jfxrt.jar

java -cp /anto/javafx/rt/lib/jfxrt.jar MyProgram.java

Я знаю, что это не решение.

0
ответ дан 25 July 2018 в 19:08

переходите к рассмотрению строки за строкой.

  1. Загрузите скрипт оболочки JavaFX SDK для Linux. Сценарий оболочки JavaFX SDK в большинстве случаев, вероятно, будет загружен в: / home / "your_user_directory" / Downloads
  2. Измените пользователя root, выполнив следующие действия:
  3. Тип / Копирование / Вставить: sudo -s
  4. Тип / Копировать / Вставить: cd / home / "your_user_directory" / Downloads
  5. Тип / Копировать / Вставить: cp -r javafx_sdk-1_3-linux- i586.sh / usr / local
  6. Тип / Копировать / Вставить: cd / usr / local
  7. И как root, сделайте исполняемый файл сценария JavaFX, выполнив следующие команды:
  8. Тип / Копировать / Вставить: sudo chmod a + x javafx_sdk-1_3-linux-i586.sh
  9. Затем выполните сценарий оболочки, запустив либо:

Тип / Копировать / Вставить: sudo ./javafx_sdk-1_3-linux-i586.sh или Тип / Копировать / Вставить: sudo sh javafx_sdk-1_3-linux-i586.sh

  1. Изменить Переменная системного пути Ubuntu Linux в / etc / profile использует текстовый редактор с правами root, например nano или gedit. Тип / Копировать / Вставить: sudo nano / etc / profile или Тип / Копировать / Вставить: sudo gedit / etc / profile
  2. Добавьте следующие строки ниже в ваш общий путь к системе / etc / profile: PATH = $ PATH: $ JAVAFX_HOME: /usr/local/javafx-sdk1.3/bin export JAVAFX_HOME export PATH
  3. Сохранить файл и выйти
  4. Перезагрузите файл / etc / profile, запустив следующая команда: Тип / Копировать / Вставить:. / etc / profile
  5. Откройте терминал в Ubuntu Linux, выполните следующую команду: Type / Copy / Paste: javafx -version

Эта команда позволяет вам узнать, какая версия javafx установлен в вашей системе. Вы должны получить сообщение, подобное: javafx 1.3.1_b101

  1. Также выполните следующую команду: Тип / Копировать / Вставить: javafxc -version Эта команда позволит вам скомпилировать javafx программы с терминала Вы должны получить сообщение, в котором говорится: javafxc 1.3.1_b101
  2. Теперь перезагрузите вашу систему Ubuntu Linux, и JavaFX должен быть полностью установлен для использования.
-5
ответ дан 2 August 2018 в 01:11

У меня такая же проблема, и ответ @samik работает для меня!

В мой ~.bashrc, как @samik скажет:

export JAVAFX_HOME=/usr/lib/jvm/javafx-sdk2.2.0-beta/rt/lib/jfxrt.jar
export CLASSPATH=$CLASSPATH:$JAVAFX_HOME:.

Теперь немного source .profile, и мы попытаемся с примером

touch JavaFxText.java

Я вырезаю / копирую этот примерный код в файл:

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.*;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

/**
 * Simple demonstration of JavaFX text support.
 * 
 * @author Dustin
 */
public class JavaFxText extends Application
{
   /**
    * Start demonstration of JavaFX text capabilities.
    * 
    * @param stage Stage for JavaFX application.
    * @throws Exception Exception in JavaFX application.
    */
   @Override
   public void start(final Stage stage) throws Exception
   {
      stage.setTitle("Simplistic Example of JavaFX 2.0 Text Capabilities");
      final Group rootGroup = new Group();
      final Scene scene =
         new Scene(rootGroup, 800, 400, Color.BEIGE);

      final Text text1 = new Text(25, 25, "(2007) JavaFX based on F3");
      text1.setFill(Color.CHOCOLATE);
      text1.setFont(Font.font(java.awt.Font.SERIF, 25));
      rootGroup.getChildren().add(text1);

      final Text text2 = new Text(25, 50, "(2010) JavaFX Script Deprecated");
      text2.setFill(Color.DARKBLUE);
      text2.setFont(Font.font(java.awt.Font.SANS_SERIF, 30));
      rootGroup.getChildren().add(text2);

      final Text text3 = new Text(25, 75, "(2011) JavaFX to be Open Sourced!");
      text3.setFill(Color.TEAL);
      text3.setFont(Font.font(java.awt.Font.MONOSPACED, 35));
      rootGroup.getChildren().add(text3);

      final Text text4 = new Text(25, 125, "(2011) JavaFX to be Standardized");
      text4.setFill(Color.CRIMSON);
      text4.setFont(Font.font(java.awt.Font.DIALOG, 40));
      final Effect glow = new Glow(1.0);
      text4.setEffect(glow);
      rootGroup.getChildren().add(text4);

      final Text text5 = new Text(25, 175, "(Now) Time for JavaFX 2.0!");
      text5.setFill(Color.DARKVIOLET);
      text5.setFont(Font.font(java.awt.Font.SERIF, FontWeight.EXTRA_BOLD, 45));
      final Light.Distant light = new Light.Distant();
      light.setAzimuth(-135.0);
      final Lighting lighting = new Lighting();
      lighting.setLight(light);
      lighting.setSurfaceScale(9.0);
      text5.setEffect(lighting);
      rootGroup.getChildren().add(text5);

      final Text text6 = new Text(25, 225, "JavaFX News at JavaOne!");
      text6.setFill(Color.DARKGREEN);
      text6.setBlendMode(BlendMode.COLOR_BURN);
      text6.setFont(Font.font(java.awt.Font.DIALOG_INPUT, FontWeight.THIN, 45));
      final Reflection reflection = new Reflection();
      reflection.setFraction(1.0);
      text6.setEffect(reflection);
      rootGroup.getChildren().add(text6);

      stage.setScene(scene);
      stage.show();
   }

   /**
    * Main JavaFX application launching method.
    * 
    * @param arguments Command-line arguments: none expected.
    */
   public static void main(final String[] arguments)
   {
      Application.launch(arguments);
   }
}

И он работает

javac JavaFxText.java
java JavaFxText

Дайте щедрость @samik, он заслуживает!

0
ответ дан 2 August 2018 в 01:11

Вы можете попробовать установить CLASSPATH вместо PATH. Java пытается загрузить свои классы из мест, на которые ссылается CLASSPATH.

  • Сначала проверьте существующий путь класса с помощью echo $CLASSPATH. Подобно PATH, записи для CLASSPATH разделяются с помощью : (двоеточие). Наличие записи . в CLASSPATH означает, что java всегда может загружать классы из текущего каталога.
  • Чтобы добавить библиотеку .jar к вашему CLASSPATH, вы должны открыть файл ~/.profile и добавить к нему export CLASSPATH=$CLASSPATH:path to .jar. Как и в вашем случае это должно быть javaFx_home=/home/anto/javafx/rt/lib/jfxrt.jar export CLASSPATH=$CLASSPATH:$javaFx_home, если . не присутствовало в вашей предыдущей записи CLASSPATH, а затем измените последнюю строку как export CLASSPATH=$CLASSPATH:$javaFx_home:.
1
ответ дан 2 August 2018 в 01:11

Автоматически: (через репозиторий webpd8 хелпер ppa)

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

Примечание. Вы можете заменить oracle-java7-installer на oracle-java8-installer или oracle-java9-installer. Перед установкой вам необходимо будет принять Лицензионное соглашение с конечным пользователем Oracle (это не обязательно для OpenJDK, поэтому, если OpenJDK-back-port выпущен для 12.04, обновите этот пост!:)

Вручную:

2
ответ дан 2 August 2018 в 01:11

Вот что я нашел до сих пор.

Я загрузил JavaFX SDK 1.2 и 2.2. Они удалили некоторые файлы из JavaFX SDK.

Для 1.2

virpara@Ascension:~$ tree -L 2 '/home/virpara/Desktop/javafx-sdk1.2' 
/home/virpara/Desktop/javafx-sdk1.2
|-- bin
|   |-- javafx
|   |-- javafxc
|   |-- javafxdoc
|   `-- javafxpackager
|-- COPYRIGHT.html
|-- docs
|   |-- api
|   |-- emulator.html
|   |-- index.html
|   |-- javafxc.html
|   |-- javafxdoc.html
|   |-- javafx.html
|   |-- javafxpackager.html
|   `-- manpage.css
|-- emulator
|   `-- bin
|-- invoice.properties
|-- lib
|   |-- desktop
|   |-- javafx-runtime.properties
|   |-- mobile
|   `-- shared
|-- LICENSE.txt
|-- profiles
|   |-- desktop.properties
|   `-- mobile.properties
|-- README.html
|-- samples
|   |-- DisplayShelf
|   |-- DisplayShelfMobile
|   |-- DragAndDrop
|   |-- index.html
|   |-- InterestingPhotos
|   |-- LocalSearch
|   |-- MediaBox
|   |-- PathAnimation
|   |-- PhotoEffects
|   |-- PhotoFlip
|   |-- shared
|   `-- SpringAnimation
|-- servicetag
|   `-- registration.jar
|-- src.zip
|-- THIRDPARTYLICENSEREADME.txt
`-- timestamp

23 directories, 23 files

Для 2.2

virpara@Ascension:~$ tree -L 2 '/home/virpara/Desktop/javafx-sdk2.2.0-beta' 
/home/virpara/Desktop/javafx-sdk2.2.0-beta
|-- bin
|   `-- javafxpackager
|-- COPYRIGHT.html
|-- docs
|   `-- api
|-- lib
|   |-- ant-javafx.jar
|   |-- javafx-doclet.jar
|   `-- javafx-mx.jar
|-- README.html
|-- rt
|   |-- COPYRIGHT.html
|   |-- lib
|   |-- README.html
|   `-- THIRDPARTYLICENSEREADME.txt
`-- THIRDPARTYLICENSEREADME.txt

6 directories, 10 files

В javafx-sdk2.2.0-beta/bin (javafx, javafxc, javafxdoc имеется только скрипт javafxpackager скрипты удаляются), это означает, что если вы экспортируете javafx-sdk2.2.0-beta/bin в свою переменную PATH и попытаетесь выполнить javafx --version в терминале, он не сможет найти javafx, потому что нет исполняемого файла с именем javafx.

Ну, у меня нет опыта работы с JavaFX, но, вероятно, они удалили еще три скрипта, потому что это было бы не нужно, и, возможно, javafxpackager выполнит эту задачу или java. Для этого достаточно

Вы пытались включить весь путь к переменной jfxrt.jar в PATH.

он не будет работать, потому что он не может автоматически перейти к параметру -cp. Итак, вы должны указать полный путь к jfxrt.jar как -cp /anto/javafx/rt/lib/jfxrt.jar

java -cp /anto/javafx/rt/lib/jfxrt.jar MyProgram.java

Я знаю, что это не решение.

0
ответ дан 2 August 2018 в 01:11

переходите к рассмотрению строки за строкой.

  1. Загрузите скрипт оболочки JavaFX SDK для Linux. Сценарий оболочки JavaFX SDK в большинстве случаев, вероятно, будет загружен в: / home / "your_user_directory" / Downloads
  2. Измените пользователя root, выполнив следующие действия:
  3. Тип / Копирование / Вставить: sudo -s
  4. Тип / Копировать / Вставить: cd / home / "your_user_directory" / Downloads
  5. Тип / Копировать / Вставить: cp -r javafx_sdk-1_3-linux- i586.sh / usr / local
  6. Тип / Копировать / Вставить: cd / usr / local
  7. И как root, сделайте исполняемый файл сценария JavaFX, выполнив следующие команды:
  8. Тип / Копировать / Вставить: sudo chmod a + x javafx_sdk-1_3-linux-i586.sh
  9. Затем выполните сценарий оболочки, запустив либо:

Тип / Копировать / Вставить: sudo ./javafx_sdk-1_3-linux-i586.sh или Тип / Копировать / Вставить: sudo sh javafx_sdk-1_3-linux-i586.sh

  1. Изменить Переменная системного пути Ubuntu Linux в / etc / profile использует текстовый редактор с правами root, например nano или gedit. Тип / Копировать / Вставить: sudo nano / etc / profile или Тип / Копировать / Вставить: sudo gedit / etc / profile
  2. Добавьте следующие строки ниже в ваш общий путь к системе / etc / profile: PATH = $ PATH: $ JAVAFX_HOME: /usr/local/javafx-sdk1.3/bin export JAVAFX_HOME export PATH
  3. Сохранить файл и выйти
  4. Перезагрузите файл / etc / profile, запустив следующая команда: Тип / Копировать / Вставить:. / etc / profile
  5. Откройте терминал в Ubuntu Linux, выполните следующую команду: Type / Copy / Paste: javafx -version

Эта команда позволяет вам узнать, какая версия javafx установлен в вашей системе. Вы должны получить сообщение, подобное: javafx 1.3.1_b101

  1. Также выполните следующую команду: Тип / Копировать / Вставить: javafxc -version Эта команда позволит вам скомпилировать javafx программы с терминала Вы должны получить сообщение, в котором говорится: javafxc 1.3.1_b101
  2. Теперь перезагрузите вашу систему Ubuntu Linux, и JavaFX должен быть полностью установлен для использования.
-5
ответ дан 4 August 2018 в 16:44

У меня такая же проблема, и ответ @samik работает для меня!

В мой ~.bashrc, как @samik скажет:

export JAVAFX_HOME=/usr/lib/jvm/javafx-sdk2.2.0-beta/rt/lib/jfxrt.jar
export CLASSPATH=$CLASSPATH:$JAVAFX_HOME:.

Теперь немного source .profile, и мы попытаемся с примером

touch JavaFxText.java

Я вырезаю / копирую этот примерный код в файл:

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.*;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

/**
 * Simple demonstration of JavaFX text support.
 * 
 * @author Dustin
 */
public class JavaFxText extends Application
{
   /**
    * Start demonstration of JavaFX text capabilities.
    * 
    * @param stage Stage for JavaFX application.
    * @throws Exception Exception in JavaFX application.
    */
   @Override
   public void start(final Stage stage) throws Exception
   {
      stage.setTitle("Simplistic Example of JavaFX 2.0 Text Capabilities");
      final Group rootGroup = new Group();
      final Scene scene =
         new Scene(rootGroup, 800, 400, Color.BEIGE);

      final Text text1 = new Text(25, 25, "(2007) JavaFX based on F3");
      text1.setFill(Color.CHOCOLATE);
      text1.setFont(Font.font(java.awt.Font.SERIF, 25));
      rootGroup.getChildren().add(text1);

      final Text text2 = new Text(25, 50, "(2010) JavaFX Script Deprecated");
      text2.setFill(Color.DARKBLUE);
      text2.setFont(Font.font(java.awt.Font.SANS_SERIF, 30));
      rootGroup.getChildren().add(text2);

      final Text text3 = new Text(25, 75, "(2011) JavaFX to be Open Sourced!");
      text3.setFill(Color.TEAL);
      text3.setFont(Font.font(java.awt.Font.MONOSPACED, 35));
      rootGroup.getChildren().add(text3);

      final Text text4 = new Text(25, 125, "(2011) JavaFX to be Standardized");
      text4.setFill(Color.CRIMSON);
      text4.setFont(Font.font(java.awt.Font.DIALOG, 40));
      final Effect glow = new Glow(1.0);
      text4.setEffect(glow);
      rootGroup.getChildren().add(text4);

      final Text text5 = new Text(25, 175, "(Now) Time for JavaFX 2.0!");
      text5.setFill(Color.DARKVIOLET);
      text5.setFont(Font.font(java.awt.Font.SERIF, FontWeight.EXTRA_BOLD, 45));
      final Light.Distant light = new Light.Distant();
      light.setAzimuth(-135.0);
      final Lighting lighting = new Lighting();
      lighting.setLight(light);
      lighting.setSurfaceScale(9.0);
      text5.setEffect(lighting);
      rootGroup.getChildren().add(text5);

      final Text text6 = new Text(25, 225, "JavaFX News at JavaOne!");
      text6.setFill(Color.DARKGREEN);
      text6.setBlendMode(BlendMode.COLOR_BURN);
      text6.setFont(Font.font(java.awt.Font.DIALOG_INPUT, FontWeight.THIN, 45));
      final Reflection reflection = new Reflection();
      reflection.setFraction(1.0);
      text6.setEffect(reflection);
      rootGroup.getChildren().add(text6);

      stage.setScene(scene);
      stage.show();
   }

   /**
    * Main JavaFX application launching method.
    * 
    * @param arguments Command-line arguments: none expected.
    */
   public static void main(final String[] arguments)
   {
      Application.launch(arguments);
   }
}

И он работает

javac JavaFxText.java
java JavaFxText

Дайте щедрость @samik, он заслуживает!

0
ответ дан 4 August 2018 в 16:44

Вы можете попробовать установить CLASSPATH вместо PATH. Java пытается загрузить свои классы из мест, на которые ссылается CLASSPATH.

  • Сначала проверьте существующий путь класса с помощью echo $CLASSPATH. Подобно PATH, записи для CLASSPATH разделяются с помощью : (двоеточие). Наличие записи . в CLASSPATH означает, что java всегда может загружать классы из текущего каталога.
  • Чтобы добавить библиотеку .jar к вашему CLASSPATH, вы должны открыть файл ~/.profile и добавить к нему export CLASSPATH=$CLASSPATH:path to .jar. Как и в вашем случае это должно быть javaFx_home=/home/anto/javafx/rt/lib/jfxrt.jar export CLASSPATH=$CLASSPATH:$javaFx_home, если . не присутствовало в вашей предыдущей записи CLASSPATH, а затем измените последнюю строку как export CLASSPATH=$CLASSPATH:$javaFx_home:.
1
ответ дан 4 August 2018 в 16:44

Автоматически: (через репозиторий webpd8 хелпер ppa)

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

Примечание. Вы можете заменить oracle-java7-installer на oracle-java8-installer или oracle-java9-installer. Перед установкой вам необходимо будет принять Лицензионное соглашение с конечным пользователем Oracle (это не обязательно для OpenJDK, поэтому, если OpenJDK-back-port выпущен для 12.04, обновите этот пост!:)

Вручную:

2
ответ дан 4 August 2018 в 16:44

Вот что я нашел до сих пор.

Я загрузил JavaFX SDK 1.2 и 2.2. Они удалили некоторые файлы из JavaFX SDK.

Для 1.2

virpara@Ascension:~$ tree -L 2 '/home/virpara/Desktop/javafx-sdk1.2' 
/home/virpara/Desktop/javafx-sdk1.2
|-- bin
|   |-- javafx
|   |-- javafxc
|   |-- javafxdoc
|   `-- javafxpackager
|-- COPYRIGHT.html
|-- docs
|   |-- api
|   |-- emulator.html
|   |-- index.html
|   |-- javafxc.html
|   |-- javafxdoc.html
|   |-- javafx.html
|   |-- javafxpackager.html
|   `-- manpage.css
|-- emulator
|   `-- bin
|-- invoice.properties
|-- lib
|   |-- desktop
|   |-- javafx-runtime.properties
|   |-- mobile
|   `-- shared
|-- LICENSE.txt
|-- profiles
|   |-- desktop.properties
|   `-- mobile.properties
|-- README.html
|-- samples
|   |-- DisplayShelf
|   |-- DisplayShelfMobile
|   |-- DragAndDrop
|   |-- index.html
|   |-- InterestingPhotos
|   |-- LocalSearch
|   |-- MediaBox
|   |-- PathAnimation
|   |-- PhotoEffects
|   |-- PhotoFlip
|   |-- shared
|   `-- SpringAnimation
|-- servicetag
|   `-- registration.jar
|-- src.zip
|-- THIRDPARTYLICENSEREADME.txt
`-- timestamp

23 directories, 23 files

Для 2.2

virpara@Ascension:~$ tree -L 2 '/home/virpara/Desktop/javafx-sdk2.2.0-beta' 
/home/virpara/Desktop/javafx-sdk2.2.0-beta
|-- bin
|   `-- javafxpackager
|-- COPYRIGHT.html
|-- docs
|   `-- api
|-- lib
|   |-- ant-javafx.jar
|   |-- javafx-doclet.jar
|   `-- javafx-mx.jar
|-- README.html
|-- rt
|   |-- COPYRIGHT.html
|   |-- lib
|   |-- README.html
|   `-- THIRDPARTYLICENSEREADME.txt
`-- THIRDPARTYLICENSEREADME.txt

6 directories, 10 files

В javafx-sdk2.2.0-beta/bin (javafx, javafxc, javafxdoc имеется только скрипт javafxpackager скрипты удаляются), это означает, что если вы экспортируете javafx-sdk2.2.0-beta/bin в свою переменную PATH и попытаетесь выполнить javafx --version в терминале, он не сможет найти javafx, потому что нет исполняемого файла с именем javafx.

Ну, у меня нет опыта работы с JavaFX, но, вероятно, они удалили еще три скрипта, потому что это было бы не нужно, и, возможно, javafxpackager выполнит эту задачу или java. Для этого достаточно

Вы пытались включить весь путь к переменной jfxrt.jar в PATH.

он не будет работать, потому что он не может автоматически перейти к параметру -cp. Итак, вы должны указать полный путь к jfxrt.jar как -cp /anto/javafx/rt/lib/jfxrt.jar

java -cp /anto/javafx/rt/lib/jfxrt.jar MyProgram.java

Я знаю, что это не решение.

0
ответ дан 4 August 2018 в 16:44

переходите к рассмотрению строки за строкой.

  1. Загрузите скрипт оболочки JavaFX SDK для Linux. Сценарий оболочки JavaFX SDK в большинстве случаев, вероятно, будет загружен в: / home / "your_user_directory" / Downloads
  2. Измените пользователя root, выполнив следующие действия:
  3. Тип / Копирование / Вставить: sudo -s
  4. Тип / Копировать / Вставить: cd / home / "your_user_directory" / Downloads
  5. Тип / Копировать / Вставить: cp -r javafx_sdk-1_3-linux- i586.sh / usr / local
  6. Тип / Копировать / Вставить: cd / usr / local
  7. И как root, сделайте исполняемый файл сценария JavaFX, выполнив следующие команды:
  8. Тип / Копировать / Вставить: sudo chmod a + x javafx_sdk-1_3-linux-i586.sh
  9. Затем выполните сценарий оболочки, запустив либо:

Тип / Копировать / Вставить: sudo ./javafx_sdk-1_3-linux-i586.sh или Тип / Копировать / Вставить: sudo sh javafx_sdk-1_3-linux-i586.sh

  1. Изменить Переменная системного пути Ubuntu Linux в / etc / profile использует текстовый редактор с правами root, например nano или gedit. Тип / Копировать / Вставить: sudo nano / etc / profile или Тип / Копировать / Вставить: sudo gedit / etc / profile
  2. Добавьте следующие строки ниже в ваш общий путь к системе / etc / profile: PATH = $ PATH: $ JAVAFX_HOME: /usr/local/javafx-sdk1.3/bin export JAVAFX_HOME export PATH
  3. Сохранить файл и выйти
  4. Перезагрузите файл / etc / profile, запустив следующая команда: Тип / Копировать / Вставить:. / etc / profile
  5. Откройте терминал в Ubuntu Linux, выполните следующую команду: Type / Copy / Paste: javafx -version

Эта команда позволяет вам узнать, какая версия javafx установлен в вашей системе. Вы должны получить сообщение, подобное: javafx 1.3.1_b101

  1. Также выполните следующую команду: Тип / Копировать / Вставить: javafxc -version Эта команда позволит вам скомпилировать javafx программы с терминала Вы должны получить сообщение, в котором говорится: javafxc 1.3.1_b101
  2. Теперь перезагрузите вашу систему Ubuntu Linux, и JavaFX должен быть полностью установлен для использования.
-5
ответ дан 6 August 2018 в 01:26

У меня такая же проблема, и ответ @samik работает для меня!

В мой ~.bashrc, как @samik скажет:

export JAVAFX_HOME=/usr/lib/jvm/javafx-sdk2.2.0-beta/rt/lib/jfxrt.jar
export CLASSPATH=$CLASSPATH:$JAVAFX_HOME:.

Теперь немного source .profile, и мы попытаемся с примером

touch JavaFxText.java

Я вырезаю / копирую этот примерный код в файл:

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.*;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

/**
 * Simple demonstration of JavaFX text support.
 * 
 * @author Dustin
 */
public class JavaFxText extends Application
{
   /**
    * Start demonstration of JavaFX text capabilities.
    * 
    * @param stage Stage for JavaFX application.
    * @throws Exception Exception in JavaFX application.
    */
   @Override
   public void start(final Stage stage) throws Exception
   {
      stage.setTitle("Simplistic Example of JavaFX 2.0 Text Capabilities");
      final Group rootGroup = new Group();
      final Scene scene =
         new Scene(rootGroup, 800, 400, Color.BEIGE);

      final Text text1 = new Text(25, 25, "(2007) JavaFX based on F3");
      text1.setFill(Color.CHOCOLATE);
      text1.setFont(Font.font(java.awt.Font.SERIF, 25));
      rootGroup.getChildren().add(text1);

      final Text text2 = new Text(25, 50, "(2010) JavaFX Script Deprecated");
      text2.setFill(Color.DARKBLUE);
      text2.setFont(Font.font(java.awt.Font.SANS_SERIF, 30));
      rootGroup.getChildren().add(text2);

      final Text text3 = new Text(25, 75, "(2011) JavaFX to be Open Sourced!");
      text3.setFill(Color.TEAL);
      text3.setFont(Font.font(java.awt.Font.MONOSPACED, 35));
      rootGroup.getChildren().add(text3);

      final Text text4 = new Text(25, 125, "(2011) JavaFX to be Standardized");
      text4.setFill(Color.CRIMSON);
      text4.setFont(Font.font(java.awt.Font.DIALOG, 40));
      final Effect glow = new Glow(1.0);
      text4.setEffect(glow);
      rootGroup.getChildren().add(text4);

      final Text text5 = new Text(25, 175, "(Now) Time for JavaFX 2.0!");
      text5.setFill(Color.DARKVIOLET);
      text5.setFont(Font.font(java.awt.Font.SERIF, FontWeight.EXTRA_BOLD, 45));
      final Light.Distant light = new Light.Distant();
      light.setAzimuth(-135.0);
      final Lighting lighting = new Lighting();
      lighting.setLight(light);
      lighting.setSurfaceScale(9.0);
      text5.setEffect(lighting);
      rootGroup.getChildren().add(text5);

      final Text text6 = new Text(25, 225, "JavaFX News at JavaOne!");
      text6.setFill(Color.DARKGREEN);
      text6.setBlendMode(BlendMode.COLOR_BURN);
      text6.setFont(Font.font(java.awt.Font.DIALOG_INPUT, FontWeight.THIN, 45));
      final Reflection reflection = new Reflection();
      reflection.setFraction(1.0);
      text6.setEffect(reflection);
      rootGroup.getChildren().add(text6);

      stage.setScene(scene);
      stage.show();
   }

   /**
    * Main JavaFX application launching method.
    * 
    * @param arguments Command-line arguments: none expected.
    */
   public static void main(final String[] arguments)
   {
      Application.launch(arguments);
   }
}

И он работает

javac JavaFxText.java
java JavaFxText

Дайте щедрость @samik, он заслуживает!

0
ответ дан 6 August 2018 в 01:26

Автоматически: (через репозиторий webpd8 хелпер ppa)

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

Примечание. Вы можете заменить oracle-java7-installer на oracle-java8-installer или oracle-java9-installer. Перед установкой вам необходимо будет принять Лицензионное соглашение с конечным пользователем Oracle (это не обязательно для OpenJDK, поэтому, если OpenJDK-back-port выпущен для 12.04, обновите этот пост!:)

Вручную:

2
ответ дан 6 August 2018 в 01:26

Вот что я нашел до сих пор.

Я загрузил JavaFX SDK 1.2 и 2.2. Они удалили некоторые файлы из JavaFX SDK.

Для 1.2

virpara@Ascension:~$ tree -L 2 '/home/virpara/Desktop/javafx-sdk1.2' 
/home/virpara/Desktop/javafx-sdk1.2
|-- bin
|   |-- javafx
|   |-- javafxc
|   |-- javafxdoc
|   `-- javafxpackager
|-- COPYRIGHT.html
|-- docs
|   |-- api
|   |-- emulator.html
|   |-- index.html
|   |-- javafxc.html
|   |-- javafxdoc.html
|   |-- javafx.html
|   |-- javafxpackager.html
|   `-- manpage.css
|-- emulator
|   `-- bin
|-- invoice.properties
|-- lib
|   |-- desktop
|   |-- javafx-runtime.properties
|   |-- mobile
|   `-- shared
|-- LICENSE.txt
|-- profiles
|   |-- desktop.properties
|   `-- mobile.properties
|-- README.html
|-- samples
|   |-- DisplayShelf
|   |-- DisplayShelfMobile
|   |-- DragAndDrop
|   |-- index.html
|   |-- InterestingPhotos
|   |-- LocalSearch
|   |-- MediaBox
|   |-- PathAnimation
|   |-- PhotoEffects
|   |-- PhotoFlip
|   |-- shared
|   `-- SpringAnimation
|-- servicetag
|   `-- registration.jar
|-- src.zip
|-- THIRDPARTYLICENSEREADME.txt
`-- timestamp

23 directories, 23 files

Для 2.2

virpara@Ascension:~$ tree -L 2 '/home/virpara/Desktop/javafx-sdk2.2.0-beta' 
/home/virpara/Desktop/javafx-sdk2.2.0-beta
|-- bin
|   `-- javafxpackager
|-- COPYRIGHT.html
|-- docs
|   `-- api
|-- lib
|   |-- ant-javafx.jar
|   |-- javafx-doclet.jar
|   `-- javafx-mx.jar
|-- README.html
|-- rt
|   |-- COPYRIGHT.html
|   |-- lib
|   |-- README.html
|   `-- THIRDPARTYLICENSEREADME.txt
`-- THIRDPARTYLICENSEREADME.txt

6 directories, 10 files

В javafx-sdk2.2.0-beta/bin (javafx, javafxc, javafxdoc имеется только скрипт javafxpackager скрипты удаляются), это означает, что если вы экспортируете javafx-sdk2.2.0-beta/bin в свою переменную PATH и попытаетесь выполнить javafx --version в терминале, он не сможет найти javafx, потому что нет исполняемого файла с именем javafx.

Ну, у меня нет опыта работы с JavaFX, но, вероятно, они удалили еще три скрипта, потому что это было бы не нужно, и, возможно, javafxpackager выполнит эту задачу или java. Для этого достаточно

Вы пытались включить весь путь к переменной jfxrt.jar в PATH.

он не будет работать, потому что он не может автоматически перейти к параметру -cp. Итак, вы должны указать полный путь к jfxrt.jar как -cp /anto/javafx/rt/lib/jfxrt.jar

java -cp /anto/javafx/rt/lib/jfxrt.jar MyProgram.java

Я знаю, что это не решение.

0
ответ дан 6 August 2018 в 01:26

переходите к рассмотрению строки за строкой.

  1. Загрузите скрипт оболочки JavaFX SDK для Linux. Сценарий оболочки JavaFX SDK в большинстве случаев, вероятно, будет загружен в: / home / "your_user_directory" / Downloads
  2. Измените пользователя root, выполнив следующие действия:
  3. Тип / Копирование / Вставить: sudo -s
  4. Тип / Копировать / Вставить: cd / home / "your_user_directory" / Downloads
  5. Тип / Копировать / Вставить: cp -r javafx_sdk-1_3-linux- i586.sh / usr / local
  6. Тип / Копировать / Вставить: cd / usr / local
  7. И как root, сделайте исполняемый файл сценария JavaFX, выполнив следующие команды:
  8. Тип / Копировать / Вставить: sudo chmod a + x javafx_sdk-1_3-linux-i586.sh
  9. Затем выполните сценарий оболочки, запустив либо:

Тип / Копировать / Вставить: sudo ./javafx_sdk-1_3-linux-i586.sh или Тип / Копировать / Вставить: sudo sh javafx_sdk-1_3-linux-i586.sh

  1. Изменить Переменная системного пути Ubuntu Linux в / etc / profile использует текстовый редактор с правами root, например nano или gedit. Тип / Копировать / Вставить: sudo nano / etc / profile или Тип / Копировать / Вставить: sudo gedit / etc / profile
  2. Добавьте следующие строки ниже в ваш общий путь к системе / etc / profile: PATH = $ PATH: $ JAVAFX_HOME: /usr/local/javafx-sdk1.3/bin export JAVAFX_HOME export PATH
  3. Сохранить файл и выйти
  4. Перезагрузите файл / etc / profile, запустив следующая команда: Тип / Копировать / Вставить:. / etc / profile
  5. Откройте терминал в Ubuntu Linux, выполните следующую команду: Type / Copy / Paste: javafx -version

Эта команда позволяет вам узнать, какая версия javafx установлен в вашей системе. Вы должны получить сообщение, подобное: javafx 1.3.1_b101

  1. Также выполните следующую команду: Тип / Копировать / Вставить: javafxc -version Эта команда позволит вам скомпилировать javafx программы с терминала Вы должны получить сообщение, в котором говорится: javafxc 1.3.1_b101
  2. Теперь перезагрузите вашу систему Ubuntu Linux, и JavaFX должен быть полностью установлен для использования.
-5
ответ дан 7 August 2018 в 18:50

У меня такая же проблема, и ответ @samik работает для меня!

В мой ~.bashrc, как @samik скажет:

export JAVAFX_HOME=/usr/lib/jvm/javafx-sdk2.2.0-beta/rt/lib/jfxrt.jar
export CLASSPATH=$CLASSPATH:$JAVAFX_HOME:.

Теперь немного source .profile, и мы попытаемся с примером

touch JavaFxText.java

Я вырезаю / копирую этот примерный код в файл:

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.*;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

/**
 * Simple demonstration of JavaFX text support.
 * 
 * @author Dustin
 */
public class JavaFxText extends Application
{
   /**
    * Start demonstration of JavaFX text capabilities.
    * 
    * @param stage Stage for JavaFX application.
    * @throws Exception Exception in JavaFX application.
    */
   @Override
   public void start(final Stage stage) throws Exception
   {
      stage.setTitle("Simplistic Example of JavaFX 2.0 Text Capabilities");
      final Group rootGroup = new Group();
      final Scene scene =
         new Scene(rootGroup, 800, 400, Color.BEIGE);

      final Text text1 = new Text(25, 25, "(2007) JavaFX based on F3");
      text1.setFill(Color.CHOCOLATE);
      text1.setFont(Font.font(java.awt.Font.SERIF, 25));
      rootGroup.getChildren().add(text1);

      final Text text2 = new Text(25, 50, "(2010) JavaFX Script Deprecated");
      text2.setFill(Color.DARKBLUE);
      text2.setFont(Font.font(java.awt.Font.SANS_SERIF, 30));
      rootGroup.getChildren().add(text2);

      final Text text3 = new Text(25, 75, "(2011) JavaFX to be Open Sourced!");
      text3.setFill(Color.TEAL);
      text3.setFont(Font.font(java.awt.Font.MONOSPACED, 35));
      rootGroup.getChildren().add(text3);

      final Text text4 = new Text(25, 125, "(2011) JavaFX to be Standardized");
      text4.setFill(Color.CRIMSON);
      text4.setFont(Font.font(java.awt.Font.DIALOG, 40));
      final Effect glow = new Glow(1.0);
      text4.setEffect(glow);
      rootGroup.getChildren().add(text4);

      final Text text5 = new Text(25, 175, "(Now) Time for JavaFX 2.0!");
      text5.setFill(Color.DARKVIOLET);
      text5.setFont(Font.font(java.awt.Font.SERIF, FontWeight.EXTRA_BOLD, 45));
      final Light.Distant light = new Light.Distant();
      light.setAzimuth(-135.0);
      final Lighting lighting = new Lighting();
      lighting.setLight(light);
      lighting.setSurfaceScale(9.0);
      text5.setEffect(lighting);
      rootGroup.getChildren().add(text5);

      final Text text6 = new Text(25, 225, "JavaFX News at JavaOne!");
      text6.setFill(Color.DARKGREEN);
      text6.setBlendMode(BlendMode.COLOR_BURN);
      text6.setFont(Font.font(java.awt.Font.DIALOG_INPUT, FontWeight.THIN, 45));
      final Reflection reflection = new Reflection();
      reflection.setFraction(1.0);
      text6.setEffect(reflection);
      rootGroup.getChildren().add(text6);

      stage.setScene(scene);
      stage.show();
   }

   /**
    * Main JavaFX application launching method.
    * 
    * @param arguments Command-line arguments: none expected.
    */
   public static void main(final String[] arguments)
   {
      Application.launch(arguments);
   }
}

И он работает

javac JavaFxText.java
java JavaFxText

Дайте щедрость @samik, он заслуживает!

0
ответ дан 7 August 2018 в 18:50

Вы можете попробовать установить CLASSPATH вместо PATH. Java пытается загрузить свои классы из мест, на которые ссылается CLASSPATH.

  • Сначала проверьте существующий путь класса с помощью echo $CLASSPATH. Подобно PATH, записи для CLASSPATH разделяются с помощью : (двоеточие). Наличие записи . в CLASSPATH означает, что java всегда может загружать классы из текущего каталога.
  • Чтобы добавить библиотеку .jar к вашему CLASSPATH, вы должны открыть файл ~/.profile и добавить к нему export CLASSPATH=$CLASSPATH:path to .jar. Как и в вашем случае это должно быть javaFx_home=/home/anto/javafx/rt/lib/jfxrt.jar export CLASSPATH=$CLASSPATH:$javaFx_home, если . не присутствовало в вашей предыдущей записи CLASSPATH, а затем измените последнюю строку как export CLASSPATH=$CLASSPATH:$javaFx_home:.
1
ответ дан 7 August 2018 в 18:50

Автоматически: (через репозиторий webpd8 хелпер ppa)

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

Примечание. Вы можете заменить oracle-java7-installer на oracle-java8-installer или oracle-java9-installer. Перед установкой вам необходимо будет принять Лицензионное соглашение с конечным пользователем Oracle (это не обязательно для OpenJDK, поэтому, если OpenJDK-back-port выпущен для 12.04, обновите этот пост!:)

Вручную:

2
ответ дан 7 August 2018 в 18:50

Вот что я нашел до сих пор.

Я загрузил JavaFX SDK 1.2 и 2.2. Они удалили некоторые файлы из JavaFX SDK.

Для 1.2

virpara@Ascension:~$ tree -L 2 '/home/virpara/Desktop/javafx-sdk1.2' 
/home/virpara/Desktop/javafx-sdk1.2
|-- bin
|   |-- javafx
|   |-- javafxc
|   |-- javafxdoc
|   `-- javafxpackager
|-- COPYRIGHT.html
|-- docs
|   |-- api
|   |-- emulator.html
|   |-- index.html
|   |-- javafxc.html
|   |-- javafxdoc.html
|   |-- javafx.html
|   |-- javafxpackager.html
|   `-- manpage.css
|-- emulator
|   `-- bin
|-- invoice.properties
|-- lib
|   |-- desktop
|   |-- javafx-runtime.properties
|   |-- mobile
|   `-- shared
|-- LICENSE.txt
|-- profiles
|   |-- desktop.properties
|   `-- mobile.properties
|-- README.html
|-- samples
|   |-- DisplayShelf
|   |-- DisplayShelfMobile
|   |-- DragAndDrop
|   |-- index.html
|   |-- InterestingPhotos
|   |-- LocalSearch
|   |-- MediaBox
|   |-- PathAnimation
|   |-- PhotoEffects
|   |-- PhotoFlip
|   |-- shared
|   `-- SpringAnimation
|-- servicetag
|   `-- registration.jar
|-- src.zip
|-- THIRDPARTYLICENSEREADME.txt
`-- timestamp

23 directories, 23 files

Для 2.2

virpara@Ascension:~$ tree -L 2 '/home/virpara/Desktop/javafx-sdk2.2.0-beta' 
/home/virpara/Desktop/javafx-sdk2.2.0-beta
|-- bin
|   `-- javafxpackager
|-- COPYRIGHT.html
|-- docs
|   `-- api
|-- lib
|   |-- ant-javafx.jar
|   |-- javafx-doclet.jar
|   `-- javafx-mx.jar
|-- README.html
|-- rt
|   |-- COPYRIGHT.html
|   |-- lib
|   |-- README.html
|   `-- THIRDPARTYLICENSEREADME.txt
`-- THIRDPARTYLICENSEREADME.txt

6 directories, 10 files

В javafx-sdk2.2.0-beta/bin (javafx, javafxc, javafxdoc имеется только скрипт javafxpackager скрипты удаляются), это означает, что если вы экспортируете javafx-sdk2.2.0-beta/bin в свою переменную PATH и попытаетесь выполнить javafx --version в терминале, он не сможет найти javafx, потому что нет исполняемого файла с именем javafx.

Ну, у меня нет опыта работы с JavaFX, но, вероятно, они удалили еще три скрипта, потому что это было бы не нужно, и, возможно, javafxpackager выполнит эту задачу или java. Для этого достаточно

Вы пытались включить весь путь к переменной jfxrt.jar в PATH.

он не будет работать, потому что он не может автоматически перейти к параметру -cp. Итак, вы должны указать полный путь к jfxrt.jar как -cp /anto/javafx/rt/lib/jfxrt.jar

java -cp /anto/javafx/rt/lib/jfxrt.jar MyProgram.java

Я знаю, что это не решение.

0
ответ дан 7 August 2018 в 18:50

переходите к рассмотрению строки за строкой.

  1. Загрузите скрипт оболочки JavaFX SDK для Linux. Сценарий оболочки JavaFX SDK в большинстве случаев, вероятно, будет загружен в: / home / "your_user_directory" / Downloads
  2. Измените пользователя root, выполнив следующие действия:
  3. Тип / Копирование / Вставить: sudo -s
  4. Тип / Копировать / Вставить: cd / home / "your_user_directory" / Downloads
  5. Тип / Копировать / Вставить: cp -r javafx_sdk-1_3-linux- i586.sh / usr / local
  6. Тип / Копировать / Вставить: cd / usr / local
  7. И как root, сделайте исполняемый файл сценария JavaFX, выполнив следующие команды:
  8. Тип / Копировать / Вставить: sudo chmod a + x javafx_sdk-1_3-linux-i586.sh
  9. Затем выполните сценарий оболочки, запустив либо:

Тип / Копировать / Вставить: sudo ./javafx_sdk-1_3-linux-i586.sh или Тип / Копировать / Вставить: sudo sh javafx_sdk-1_3-linux-i586.sh

  1. Изменить Переменная системного пути Ubuntu Linux в / etc / profile использует текстовый редактор с правами root, например nano или gedit. Тип / Копировать / Вставить: sudo nano / etc / profile или Тип / Копировать / Вставить: sudo gedit / etc / profile
  2. Добавьте следующие строки ниже в ваш общий путь к системе / etc / profile: PATH = $ PATH: $ JAVAFX_HOME: /usr/local/javafx-sdk1.3/bin export JAVAFX_HOME export PATH
  3. Сохранить файл и выйти
  4. Перезагрузите файл / etc / profile, запустив следующая команда: Тип / Копировать / Вставить:. / etc / profile
  5. Откройте терминал в Ubuntu Linux, выполните следующую команду: Type / Copy / Paste: javafx -version

Эта команда позволяет вам узнать, какая версия javafx установлен в вашей системе. Вы должны получить сообщение, подобное: javafx 1.3.1_b101

  1. Также выполните следующую команду: Тип / Копировать / Вставить: javafxc -version Эта команда позволит вам скомпилировать javafx программы с терминала Вы должны получить сообщение, в котором говорится: javafxc 1.3.1_b101
  2. Теперь перезагрузите вашу систему Ubuntu Linux, и JavaFX должен быть полностью установлен для использования.
-5
ответ дан 10 August 2018 в 07:27

У меня такая же проблема, и ответ @samik работает для меня!

В мой ~.bashrc, как @samik скажет:

export JAVAFX_HOME=/usr/lib/jvm/javafx-sdk2.2.0-beta/rt/lib/jfxrt.jar
export CLASSPATH=$CLASSPATH:$JAVAFX_HOME:.

Теперь немного source .profile, и мы попытаемся с примером

touch JavaFxText.java

Я вырезаю / копирую этот примерный код в файл:

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.*;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

/**
 * Simple demonstration of JavaFX text support.
 * 
 * @author Dustin
 */
public class JavaFxText extends Application
{
   /**
    * Start demonstration of JavaFX text capabilities.
    * 
    * @param stage Stage for JavaFX application.
    * @throws Exception Exception in JavaFX application.
    */
   @Override
   public void start(final Stage stage) throws Exception
   {
      stage.setTitle("Simplistic Example of JavaFX 2.0 Text Capabilities");
      final Group rootGroup = new Group();
      final Scene scene =
         new Scene(rootGroup, 800, 400, Color.BEIGE);

      final Text text1 = new Text(25, 25, "(2007) JavaFX based on F3");
      text1.setFill(Color.CHOCOLATE);
      text1.setFont(Font.font(java.awt.Font.SERIF, 25));
      rootGroup.getChildren().add(text1);

      final Text text2 = new Text(25, 50, "(2010) JavaFX Script Deprecated");
      text2.setFill(Color.DARKBLUE);
      text2.setFont(Font.font(java.awt.Font.SANS_SERIF, 30));
      rootGroup.getChildren().add(text2);

      final Text text3 = new Text(25, 75, "(2011) JavaFX to be Open Sourced!");
      text3.setFill(Color.TEAL);
      text3.setFont(Font.font(java.awt.Font.MONOSPACED, 35));
      rootGroup.getChildren().add(text3);

      final Text text4 = new Text(25, 125, "(2011) JavaFX to be Standardized");
      text4.setFill(Color.CRIMSON);
      text4.setFont(Font.font(java.awt.Font.DIALOG, 40));
      final Effect glow = new Glow(1.0);
      text4.setEffect(glow);
      rootGroup.getChildren().add(text4);

      final Text text5 = new Text(25, 175, "(Now) Time for JavaFX 2.0!");
      text5.setFill(Color.DARKVIOLET);
      text5.setFont(Font.font(java.awt.Font.SERIF, FontWeight.EXTRA_BOLD, 45));
      final Light.Distant light = new Light.Distant();
      light.setAzimuth(-135.0);
      final Lighting lighting = new Lighting();
      lighting.setLight(light);
      lighting.setSurfaceScale(9.0);
      text5.setEffect(lighting);
      rootGroup.getChildren().add(text5);

      final Text text6 = new Text(25, 225, "JavaFX News at JavaOne!");
      text6.setFill(Color.DARKGREEN);
      text6.setBlendMode(BlendMode.COLOR_BURN);
      text6.setFont(Font.font(java.awt.Font.DIALOG_INPUT, FontWeight.THIN, 45));
      final Reflection reflection = new Reflection();
      reflection.setFraction(1.0);
      text6.setEffect(reflection);
      rootGroup.getChildren().add(text6);

      stage.setScene(scene);
      stage.show();
   }

   /**
    * Main JavaFX application launching method.
    * 
    * @param arguments Command-line arguments: none expected.
    */
   public static void main(final String[] arguments)
   {
      Application.launch(arguments);
   }
}

И он работает

javac JavaFxText.java
java JavaFxText

Дайте щедрость @samik, он заслуживает!

0
ответ дан 10 August 2018 в 07:27

Вы можете попробовать установить CLASSPATH вместо PATH. Java пытается загрузить свои классы из мест, на которые ссылается CLASSPATH.

  • Сначала проверьте существующий путь класса с помощью echo $CLASSPATH. Подобно PATH, записи для CLASSPATH разделяются с помощью : (двоеточие). Наличие записи . в CLASSPATH означает, что java всегда может загружать классы из текущего каталога.
  • Чтобы добавить библиотеку .jar к вашему CLASSPATH, вы должны открыть файл ~/.profile и добавить к нему export CLASSPATH=$CLASSPATH:path to .jar. Как и в вашем случае это должно быть javaFx_home=/home/anto/javafx/rt/lib/jfxrt.jar export CLASSPATH=$CLASSPATH:$javaFx_home, если . не присутствовало в вашей предыдущей записи CLASSPATH, а затем измените последнюю строку как export CLASSPATH=$CLASSPATH:$javaFx_home:.
1
ответ дан 10 August 2018 в 07:27

Автоматически: (через репозиторий webpd8 хелпер ppa)

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

Примечание. Вы можете заменить oracle-java7-installer на oracle-java8-installer или oracle-java9-installer. Перед установкой вам необходимо будет принять Лицензионное соглашение с конечным пользователем Oracle (это не обязательно для OpenJDK, поэтому, если OpenJDK-back-port выпущен для 12.04, обновите этот пост!:)

Вручную:

2
ответ дан 10 August 2018 в 07:27

Вот что я нашел до сих пор.

Я загрузил JavaFX SDK 1.2 и 2.2. Они удалили некоторые файлы из JavaFX SDK.

Для 1.2

virpara@Ascension:~$ tree -L 2 '/home/virpara/Desktop/javafx-sdk1.2' 
/home/virpara/Desktop/javafx-sdk1.2
|-- bin
|   |-- javafx
|   |-- javafxc
|   |-- javafxdoc
|   `-- javafxpackager
|-- COPYRIGHT.html
|-- docs
|   |-- api
|   |-- emulator.html
|   |-- index.html
|   |-- javafxc.html
|   |-- javafxdoc.html
|   |-- javafx.html
|   |-- javafxpackager.html
|   `-- manpage.css
|-- emulator
|   `-- bin
|-- invoice.properties
|-- lib
|   |-- desktop
|   |-- javafx-runtime.properties
|   |-- mobile
|   `-- shared
|-- LICENSE.txt
|-- profiles
|   |-- desktop.properties
|   `-- mobile.properties
|-- README.html
|-- samples
|   |-- DisplayShelf
|   |-- DisplayShelfMobile
|   |-- DragAndDrop
|   |-- index.html
|   |-- InterestingPhotos
|   |-- LocalSearch
|   |-- MediaBox
|   |-- PathAnimation
|   |-- PhotoEffects
|   |-- PhotoFlip
|   |-- shared
|   `-- SpringAnimation
|-- servicetag
|   `-- registration.jar
|-- src.zip
|-- THIRDPARTYLICENSEREADME.txt
`-- timestamp

23 directories, 23 files

Для 2.2

virpara@Ascension:~$ tree -L 2 '/home/virpara/Desktop/javafx-sdk2.2.0-beta' 
/home/virpara/Desktop/javafx-sdk2.2.0-beta
|-- bin
|   `-- javafxpackager
|-- COPYRIGHT.html
|-- docs
|   `-- api
|-- lib
|   |-- ant-javafx.jar
|   |-- javafx-doclet.jar
|   `-- javafx-mx.jar
|-- README.html
|-- rt
|   |-- COPYRIGHT.html
|   |-- lib
|   |-- README.html
|   `-- THIRDPARTYLICENSEREADME.txt
`-- THIRDPARTYLICENSEREADME.txt

6 directories, 10 files

В javafx-sdk2.2.0-beta/bin (javafx, javafxc, javafxdoc имеется только скрипт javafxpackager скрипты удаляются), это означает, что если вы экспортируете javafx-sdk2.2.0-beta/bin в свою переменную PATH и попытаетесь выполнить javafx --version в терминале, он не сможет найти javafx, потому что нет исполняемого файла с именем javafx.

Ну, у меня нет опыта работы с JavaFX, но, вероятно, они удалили еще три скрипта, потому что это было бы не нужно, и, возможно, javafxpackager выполнит эту задачу или java. Для этого достаточно

Вы пытались включить весь путь к переменной jfxrt.jar в PATH.

он не будет работать, потому что он не может автоматически перейти к параметру -cp. Итак, вы должны указать полный путь к jfxrt.jar как -cp /anto/javafx/rt/lib/jfxrt.jar

java -cp /anto/javafx/rt/lib/jfxrt.jar MyProgram.java

Я знаю, что это не решение.

0
ответ дан 10 August 2018 в 07:27

переходите к рассмотрению строки за строкой.

  1. Загрузите скрипт оболочки JavaFX SDK для Linux. Сценарий оболочки JavaFX SDK в большинстве случаев, вероятно, будет загружен в: / home / "your_user_directory" / Downloads
  2. Измените пользователя root, выполнив следующие действия:
  3. Тип / Копирование / Вставить: sudo -s
  4. Тип / Копировать / Вставить: cd / home / "your_user_directory" / Downloads
  5. Тип / Копировать / Вставить: cp -r javafx_sdk-1_3-linux- i586.sh / usr / local
  6. Тип / Копировать / Вставить: cd / usr / local
  7. И как root, сделайте исполняемый файл сценария JavaFX, выполнив следующие команды:
  8. Тип / Копировать / Вставить: sudo chmod a + x javafx_sdk-1_3-linux-i586.sh
  9. Затем выполните сценарий оболочки, запустив либо:

Тип / Копировать / Вставить: sudo ./javafx_sdk-1_3-linux-i586.sh или Тип / Копировать / Вставить: sudo sh javafx_sdk-1_3-linux-i586.sh

  1. Изменить Переменная системного пути Ubuntu Linux в / etc / profile использует текстовый редактор с правами root, например nano или gedit. Тип / Копировать / Вставить: sudo nano / etc / profile или Тип / Копировать / Вставить: sudo gedit / etc / profile
  2. Добавьте следующие строки ниже в ваш общий путь к системе / etc / profile: PATH = $ PATH: $ JAVAFX_HOME: /usr/local/javafx-sdk1.3/bin export JAVAFX_HOME export PATH
  3. Сохранить файл и выйти
  4. Перезагрузите файл / etc / profile, запустив следующая команда: Тип / Копировать / Вставить:. / etc / profile
  5. Откройте терминал в Ubuntu Linux, выполните следующую команду: Type / Copy / Paste: javafx -version

Эта команда позволяет вам узнать, какая версия javafx установлен в вашей системе. Вы должны получить сообщение, подобное: javafx 1.3.1_b101

  1. Также выполните следующую команду: Тип / Копировать / Вставить: javafxc -version Эта команда позволит вам скомпилировать javafx программы с терминала Вы должны получить сообщение, в котором говорится: javafxc 1.3.1_b101
  2. Теперь перезагрузите вашу систему Ubuntu Linux, и JavaFX должен быть полностью установлен для использования.
-5
ответ дан 15 August 2018 в 19:30
  • 1
    Ну, мне нужен способ установить JavaFx 2.0 – Ant's 4 June 2012 в 11:02
  • 2
    я уже дал его вам ... вы можете следовать за ним ... – Rajat 4 June 2012 в 11:18
  • 3
    Я хотел сказать, что для JavaFx 2.0 нет сценария оболочки, – Ant's 4 June 2012 в 11:23
  • 4
    Подкаталог bin содержит javafxpackager, сценарий оболочки, внутренне документированный как сценарий выполнения JavaFX Packager для Linux / Solaris / OS X. – Rajat 5 June 2012 в 09:22
  • 5
    @metauser не будет работать с JavaFx 2.0.X – virpara 8 June 2012 в 20:49

Другие вопросы по тегам:

Похожие вопросы: