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

Java 如何从openjfx源代码构建场景生成器,java,javafx,scenebuilder,Java,Javafx,Scenebuilder,我试图从openjfx源代码构建JFX场景生成器,但我找不到有效的howto或clear文档,我已经阅读了官方的openjfx说明,该说明不适用于场景生成器,而是适用于整个sdk,因此我安装了mercurial和gradle,但我有一些问题: 1) 我可以只构建场景生成器而不构建整个SDK吗 2) 我尝试从apps/scenebuilder文件夹运行gradle,但运行成功,但在哪里可以找到生成的工件?我希望有一个目标文件夹,里面有一个jar,但没有生成任何内容 3) 我在谷歌上搜索了一下,发现

我试图从openjfx源代码构建JFX场景生成器,但我找不到有效的howto或clear文档,我已经阅读了官方的openjfx说明,该说明不适用于场景生成器,而是适用于整个sdk,因此我安装了mercurial和gradle,但我有一些问题:

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

2) 我尝试从apps/scenebuilder文件夹运行gradle,但运行成功,但在哪里可以找到生成的工件?我希望有一个目标文件夹,里面有一个jar,但没有生成任何内容

3) 我在谷歌上搜索了一下,发现应该可以从mercurial下载scene builder源代码,但我找不到任何有效的mercurial repo


非常感谢您的帮助。

从这里下载Scene Builder源代码:

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

从下载的源代码中,将com包(从“java”和“resources”子文件夹复制到src文件夹

在e(fx)clipse中,以com/oracle/javafx/scenebuilder/app/SceneBuilderApp.Java作为启动应用,单击文件->导出->Java->可运行JAR,并创建可运行JAR

没有别的了


如果您不想从gluon获得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

显然,路径是为您的安装定制的。

可以使用从源代码构建路径

1) 下载资料来源:

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>
java -jar SceneBuilder<version-string>.jar
6) 从SceneBuilder/target/目录运行它:

<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>
java -jar SceneBuilder<version-string>.jar
java-jar-SceneBuilder.jar

每个问题只能问一个问题。如果它们关系非常密切,那没关系,但在本例中,它们是一个项目的三个独立方面。另外,你的第三个问题甚至不是一个问题,只是一个陈述。对不起,这是我关于堆栈溢出的第一篇帖子非常感谢你的提示,但我的问题是理解为什么它不能构建,场景生成器也可以从gluon获得二进制,我不能依赖我不理解的东西来完成我的工作,因此,由于我决定使用scene builder,而官方发行版是源代码,因此我将仅在我能够自己构建它的情况下使用它。无论从哪里获得“官方”版本,其机制都完全相同。问题是什么?很简单,我想自己构建它,但它无法在我的笔记本电脑上构建,所以我想了解出了什么问题,因为它是一个开源工具,应该可以从原始源代码构建。这里没有人可能知道你的笔记本电脑出了什么问题。我使用openjfx中的场景生成器版本更新了说明。建立自己的系统非常容易。事实上,我印象深刻的是,它真的很容易,工作没有任何问题。我担心如果你不能做到这一点,我建议你使用gluon的安装程序。