web-dev-qa-db-ja.com

Ubuntu 12.04にJavaFxをインストールする方法は?

here からJavaFxをダウンロードします。名前をantoとしてホームディレクトリ(javafx)に配置しました。それから私はこのようなことをしました:

vi ~/.bashrc

次の行を追加しました。

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

しかし、クラスパスを提供した後、実行してみました:

groovy MyProgram

(JavaFxクラスパスに依存します)。

しかし、それは私にエラーをスローします。どこで間違ったの?

3
Ant's

自動:(webupd8ヘルパーPPAリポジトリ経由)

Sudo add-apt-repository ppa:webupd8team/Java
Sudo apt-get update
Sudo apt-get install Oracle-Java7-installer

注:Oracle-Java7-installerOracle-Java8-installerまたはOracle-Java9-installerに置き換えることができます。インストールの前にOracleエンドユーザーライセンス契約に同意する必要があります(OpenJDKでは必要ありません。したがって、OpenJDKバックポートが12.04にリリースされている場合は、この投稿を更新してください!:)

手動で:

2

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
Samik

ここに私がこれまでに見つけたものがあります。

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にはjavafxpackagerスクリプトのみがあります(javafx, javafxc, javafxdocスクリプトは削除されます)javafx-sdk2.2.0-beta/binPATH変数にエクスポートし、端末でjavafx --versionを実行しようとすると、 javafxという名前の実行可能ファイルがないため、javafxが見つかりません。

私はJavaFXの経験がありませんが、おそらく他の3つのスクリプトは削除されたでしょう。おそらく、javafxpackagerがそれを行うか、Javaで十分でしょう。

PATH変数へのjfxrt.jarへの完全なパスを含めようとしました。

-cpパラメーターに自動的に渡すことができないため、機能しません。そのため、jfxrt.jarへのフルパスを-cp /anto/javafx/rt/lib/jfxrt.jarとして指定する必要があります

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

私はそれが解決策ではないことを知っています。

0
Rahul Virpara

私は同じ問題を抱えており、@ samik answer works for me

私の~.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
reyman64