2013-02-16 59 views
4

因此,我正在尝试为javafx运行一个简单的helloworld应用程序,但其包无法找到。好的,所以一定是某种路径问题吧?未找到mac安装的JavaFX

我从这里下载共同捆绑版本:

http://www.oracle.com/technetwork/java/javafx/downloads/index.html

你会认为共同捆绑将其安装就像安装了SE包。我搜索了网络,人们给windows windows的答案与mac问题。这真的是国际海事组织的一个java问题,因为或者像你说的那样合并捆绑并安装两者或将它们分开!

我还没有找到一个合适的解决方案来让javafx包含在编译中,它不涉及包含长路径。

编辑: 安装NetBeans并创建javafx项目后,它找到合适的包没有问题。我认为在这一点上应该很清楚FX与SE版本是捆绑在一起的,然而他们(Java维护者)决定让FX从命令行工作变得显然不安。任何洞察这个否则愚蠢的决定?

回答

4

一些选择:

  1. 使用JavaFX 8哪些地方JavaFX是在默认运行时类路径。
  2. 使用Oracle JavaFX deployment tools打包应用程序,该应用程序将在您的应用程序中插入代码以查找JavaFX。
  3. 如果您无法执行上述任一操作,请手动将jfxrt.jar的路径添加到您的编译和运行时类路径中。

对于3,你可以找到jfxrt.jar下的JRE:

/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home 

如果你已经安装了JDK 7,你可以运行一个JavaFX应用程序的命令行(使用JavaFX的部署工具打包)使用类似以下内容:

export JAVA_HOME=`/usr/libexec/java_home -v 1.7` 
java -version 
java -jar application.jar 

如果是刚刚安装的JRE7并没有JDK,那么你可以使用:

/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -jar application.jar 
+0

选3为我工作很好 - 感谢您的明确和详细的解决方案! – 2013-07-09 17:01:32

2

每选项#3 Jewelsea的答案,这里是它在我的Ant构建文件的样子:

<property name="jfx.dir" value="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib"/> 

<path id="project.class.path"> 
    <pathelement path="${classpath}"/> 
    <pathelement location="${jfx.dir}/jfxrt.jar"/> 
</path> 

<target name="compile" 
    description="Compiles the source code."> 
    <mkdir dir="${classes.dir}"/> 
    <javac includeantruntime="false" 
     srcdir="${src.dir}" 
     destdir="${classes.dir}"> 
     <classpath refid="project.class.path"/> 
     <exclude name="**/package-info.java"/> 
    </javac> 
</target> 
相关问题