帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:JAVA  Javafx  Ubuntu  

问题:

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

 
vi ~/.bashrc



 

并添加了以下行:


javaFx_home=/anto/javafx/rt/lib/jfxrt.jar


export PATH=$PATH:$javaFx_home



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

 
groovy MyProgram



 

( 依赖于JavaFx类路径)。

但这给了我一个错误。 我出错的地方?


回答 1:

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


sudo add-apt-repository ppa:webupd8team/java


sudo apt-get update


sudo apt-get install oracle-java7-installer



注意:你可以用 oracle-java8-installer 或者 oracle-java9-installer 替换 oracle-java7-installer。 在安装之前你需要接受Oracle用户许可协议( OpenJDK不需要这样做,所以如果在 12.04年发布了OpenJDK后端端口,请更新这篇文章。 : )

手动:


回答 2:

你可以尝试设置 CLASSPATH 而不是 PATH。 Java试图从 CLASSPATH 引用的位置加载它的类。

  • 首先用 echo $CLASSPATH 检查现有类路径。 PATH 一样,CLASSPATH的条目用 : ( 冒号) 分隔。 CLASSPATH 下的. 条目表示 java 总是可以从当前目录加载类。
  • 要向 CLASSPATH 中添加 .jar 库,你应该打开文件 ~/.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:.

回答 3:

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

我下载了 1.2 SDK和 2.2。 他们已经从JavaFX中删除了一些文件。

用于 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



只有在 javafxpackager 中有脚本,这意味着如果将 javafx-sdk2.2.0-beta/bin 导出到 PATH 变量并尝试在终端执行 javafx --version,因为没有名为 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



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


回答 4:

我有同样的问题,英镑的@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, 奖励他应得的 !




文章标签:JAVA  Ubuntu  Javafx  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语