如何从 openjfx 源构建场景生成器

How to build scene builder from openjfx sources

我正在尝试从 openjfx 源构建 JFX 场景生成器,但找不到有效的操作方法或清晰的文档,我已经阅读了官方的 openjfx 说明,该说明不是针对场景生成器的,而是针对整个 sdk,所以我安装了 mercurial 和 gradle 但我有一些问题:

1) 我可以只构建场景构建器而不构建整个 SDK 吗?

2) 我已尝试从 apps/scenebuilder 文件夹 运行 运行 gradle 成功 运行 但是在哪里可以找到生成的工件?我期待一个带有 jar 的目标文件夹,但没有生成任何东西。

3) 我用谷歌搜索了一下,发现应该可以只从 mercurial 下载场景生成器源代码,但我找不到任何有效的 mercurial 存储库。

非常感谢任何帮助,非常感谢。

从这里下载 Scene Builder 源代码:

https://bitbucket.org/gluon-oss/scenebuilder/downloads

在 e(fx)clipse 中创建一个新的 JavaFX 项目 "SceneBuilder".

从下载的源中复制 com 包(从子文件夹 "java" 和 "resources" 到 src 文件夹。

在 e(fx)clipse 中点击 File -> Export -> Java -> Runnable JAR with com/oracle/javafx/scenebuilder/app/SceneBuilderApp.java 作为启动应用并创建一个可运行的 jar。

没有别的了。


如果你不想从 gluon 获取 SceneBuilder,你可以从这里获取:

http://hg.openjdk.java.net/openjfx/8u40/rt/file/eb264cdc5828/apps/scenebuilder

同样的步骤适用。只需将 SceneBuilderApp 和 SceneBuilderKit 的 src 文件夹的内容复制到一个新的 JavaFX 项目中,让它编译,创建一个可运行的 jar 并完成它。它完美无缺地工作。

好的,

事实证明,不需要从 openjfx 构建整个 SDK 来构建场景构建器应用程序我已经通过这种方式解决了:

1) Installed latest ant from apache official site

2) Gone into the apps/scenebuilder folder

3) Run ant -Dplatforms.JDK_1.8.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/ jar

这对我有用,构建的结果在 "dist" 文件夹中,运行 我不得不使用

刚刚构建的场景构建器
/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home//bin/java -cp /Users/fabiofrumento/openjfx/apps/scenebuilder/SceneBuilderKit/dist/SceneBuilderKit.jar:/Users/fabiofrumento/openjfx/apps/scenebuilder/SceneBuilderApp/dist/SceneBuilderApp.jar com.oracle.javafx.scenebuilder.app.SceneBuilderApp

显然要为您的安装自定义路径。

它可以使用 maven 从源构建。

1) 下载资源:http://hg.openjdk.java.net/openjfx/8u60/rt/

2) 创建maven项目&文件夹:

mvn archetype:generate -DartifactId=SceneBuilder -Dpackage=com.oracle.javafx.scenebuilder.app -DgroupId=com.oracle

3) 编辑新建目录下的pom.xml文件:

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
</properties>

 <build>

 <resources>
   <resource>
     <directory>src/main/java</directory>
      <excludes>
        <exclude>**/*.java</exclude>
      </excludes>
   </resource>
 </resources>

  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>3.0.2</version>
      <configuration>
        <archive>
          <manifest>
            <mainClass>com.oracle.javafx.scenebuilder.app.SceneBuilderApp</mainClass>
          </manifest>
        </archive>
      </configuration>
    </plugin>
  </plugins>

 </build>

4) 提取来源:

  • SceneBuilderApp/src/com/ 和 SceneBuilderKit/src/com/ 都覆盖 SceneBuilder/src/main/java/com/
  • 结果应该是 SceneBuilder/src/main/java/com/oracle/javafx/scenebuilder/{app,kit}
  • 中的文件

5) 构建 .jar:

mvn clean package

6) 运行 它来自 SceneBuilder/target/ 目录:

java -jar SceneBuilder<version-string>.jar