如何在Ubuntu 12.04中安装JavaFx?

我从这里下载JavaFx。 我将它放在我的主目录( anto )中,名称为javafx 。 然后我做了这样的事情:

 vi ~/.bashrc 

并添加以下行:

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

但在提供类路径后,我尝试运行:

 groovy MyProgram 

(这取决于JavaFx类路径)。

但这让我错了。 哪里出错了?

自动:(通过webupd8 helper ppa存储库)

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

注意:您可以使用oracle-java8-installeroracle-java9-installer 。 您需要在安装之前接受Oracle最终用户许可协议(这不是OpenJDK所必需的,因此如果OpenJDK后端端口是针对12.04发布的,请更新此post!:)

手动:

您可以尝试设置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:.

这是我到目前为止所发现的。

我下载了JavaFX SDK 1.22.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/bin导出到PATH变量并尝试执行javafx --version在终端中找不到javafx因为没有名为javafx可执行文件。

好吧,我没有JavaFX的经验,但可能他们已经删除了其他三个脚本,因为它不需要,也许javafxpackager可以做到这一点,或者java就足够了。

您已尝试将jfxrt.jar完整路径jfxrt.jarPATH变量中。

它不起作用,因为它无法自动传递给-cp参数。 因此,您必须提供jfxrt.jar完整路径as -cp /anto/javafx/rt/lib/jfxrt.jar

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

我知道这不是一个解决方案。

我有同样的问题, @ 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赏金,他应得的!

请继续逐行考虑..

  1. 下载适用于Linux的JavaFX SDK shell脚本。 大多数情况下,JavaFX SDK shell脚本可能会下载到:/ 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 shell脚本可执行:

  8. 键入/复制/粘贴:sudo chmod a + x javafx_sdk-1_3-linux-i586.sh

  9. 然后通过运行以下任一方法执行shell脚本:

键入/复制/粘贴:sudo ./javafx_sdk-1_3-linux-i586.sh或类型/复制/粘贴:sudo sh javafx_sdk-1_3-linux-i586.sh

  1. 编辑/ etc / profile中的Ubuntu Linux系统路径变量,使用文本编辑器作为root,例如nano或gedit。 键入/复制/粘贴:sudo nano / etc / profile或Type / Copy / Paste: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以供使用。