JavaFX 2.0 + NetBeans + Maven



我正在使用NetBeans 7.0.1创建JavaFX 2.0应用程序。当我以标准的方式创建项目时,一切都很好。不幸的是,)我需要Maven项目…

我没有在Maven仓库中找到JavaFX 2.0,所以我的pom.xml现在看起来像这样:

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>
    <groupId>mygroup</groupId>
    <artifactId>ui</artifactId>
    <version>0.1</version>
    <name>My Project</name>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>javafx</groupId>
            <artifactId>jfxrt</artifactId>
            <version>2.0</version>
            <type>jar</type>
            <scope>system</scope>
            <systemPath>${env.JAVAFX_HOME}libjfxrt.jar</systemPath>
        </dependency>
    </dependencies>
</project>

JAVAFX_HOME系统变量设置:

C:Usersrach>echo %JAVAFX_HOME%
C:Program FilesOracleJavaFX Runtime 2.0

编译正常,但是当我在NetBeans下启动程序时,我得到了错误:

Exception in thread "main" java.lang.NoClassDefFoundError: javafx/application/Application at java.lang.ClassLoader.defineClass1(Native Method)

但是jfxrt.jar在类路径中:

C:>echo %CLASSPATH%
C:Program FilesOracleJavaFX Runtime 2.0libjfxrt.jar

当我从命令行启动应用程序时,它工作得很好。

当我在运行时在本地存储库中安装jfxrt.jar时,应用程序仍然没有启动,因为它无法找到C:Program FilesOracleJavaFX runtime 2.0binmat.dll。Pom.xml:

<dependency>
    <groupId>javafx</groupId>
    <artifactId>jfxrt</artifactId>
    <version>2.0</version>
    <type>jar</type>
</dependency>

效应:

Exception in thread "main" java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Can't load library: C:RepositoriesMavenRepojavafxjfxrtbinmat.dll at com.sun.javafx.tk.quantum.QuantumToolkit.startup(Unknown Source)

任何想法?

谢谢你的帮助。

那些使用JavaFX 2.0 SDK的人这里有简单的步骤

  1. 转到JavaFX 2.0 SDKrtlib(命令提示符)

  2. 执行mvn install:install-file -Dfile=jfxrt.jar -DgroupId=com。

  3. oracle -DartifactId=javafx
  4. 将bin文件夹从JavaFX 2.0 SDKrt目录复制到。m2repositorycomoracle JavaFX目录

4。<dependency>
<groupId>com.oracle</groupId> <artifactId>javafx</artifactId> <version>2.0</version> <scope>compile</scope> </dependency>

对于当前的Java 7和捆绑的Java FX 2.0,最好的答案是:

<dependency>
  <groupId>com.oracle</groupId>
  <artifactId>javafx</artifactId>
  <version>2</version>
  <systemPath>${java.home}/lib/jfxrt.jar</systemPath>
  <scope>system</scope>
</dependency>    

并将其添加到NetBeans中使用的Maven配置文件的"Run Project"操作中:

exec.classpathScope=compile

你也可以在"Debug project", "Profile project", "Run file via main()", "Debug file via main()"one_answers"Profile file via main()"操作中使用

目前,这似乎是一个有效的解决方案。

首先,安装jfxrt.jar:
mvn install:install-file -Dfile=jfxrt.jar -DgroupId=com.oracle -DartifactId=javafx-runtime -Dpackaging=jar -Dversion=2.0

然后从你下载的JavaFX运行时复制bin文件夹到你本地的Maven repo (home/.m2/repository/com/oracle/javafx-runtime/)

相关内容

  • 没有找到相关文章