Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
找不到mac上的JavaFX安装_Javafx - Fatal编程技术网

找不到mac上的JavaFX安装

找不到mac上的JavaFX安装,javafx,Javafx,因此,我试图为javafx运行一个简单的helloworld应用程序,但找不到它的包。那一定是某种路径问题,对吧 我已从此处下载了联合捆绑版本: 您可能会认为,联合捆绑包的安装方式与SE软件包的安装方式相同。我在网上搜索过,人们用windows路径来回答mac问题。这在我看来确实是一个java问题,因为要么像你说的那样进行联合捆绑,然后安装两者,要么将它们分开 我还没有找到一个合适的解决方案来将javafx包含在编译中,这不涉及包含长路径 编辑: 在安装netbeans并创建javafx项目之

因此,我试图为javafx运行一个简单的helloworld应用程序,但找不到它的包。那一定是某种路径问题,对吧

我已从此处下载了联合捆绑版本:

您可能会认为,联合捆绑包的安装方式与SE软件包的安装方式相同。我在网上搜索过,人们用windows路径来回答mac问题。这在我看来确实是一个java问题,因为要么像你说的那样进行联合捆绑,然后安装两者,要么将它们分开

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

编辑: 在安装netbeans并创建javafx项目之后,找到合适的包并没有问题。我认为在这一点上应该很清楚,FX与SE版本是联合捆绑的,但是他们(java维护人员)已经决定让FX从命令行运行起来非常不方便。对这个愚蠢的决定有什么见解吗?

一些选择:

  • 使用将JavaFX放置在默认运行时类路径上的位置
  • 使用将在应用程序中插入代码以查找JavaFX的包对应用程序进行打包
  • 如果无法执行上述任一操作,请手动将jfxrt.jar的路径添加到编译和运行时类路径中
  • 对于3,您可以在以下目录下找到jre的jfxrt.jar:

    /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    
    如果安装了jdk7,可以从命令行运行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
    
    根据Jewelsea答案中的选项3,以下是它在我的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>
    
    
    
    我现在在大学的课堂作业中使用JavaFX。我刚刚发现,除了10.0.2之外,没有任何JDK版本可以运行JavaFX。卸载所有其他版本并运行10.0.2和JavaFX应该可以工作。

    选项3对我来说效果很好-感谢您提供清晰详细的解决方案!