能否修改Gluon Scene Builder生成FXML文件的目标版本?
解决方案
方案1:修改Scene Builder全局配置(一劳永逸,所有新生成文件自动生效)
- 完全关闭正在运行的Gluon Scene Builder程序
- 找到对应系统的Scene Builder配置文件路径:
- Windows:
C:\Users\<你的用户名>\.scenebuilder\<你用的版本号>\Preferences\com\oracle\javafx\scenebuilder\app\preferences.properties - macOS:
~/Library/Preferences/com.oracle.javafx.scenebuilder.app.plist - Linux:
~/.scenebuilder/<你用的版本号>/Preferences/com/oracle/javafx/scenebuilder/app/preferences.properties
- Windows:
- 打开配置文件,新增一行配置:
如果你需要完全不带版本号的命名空间,就改为default.namespace=http://javafx.com/javafx/8.0default.namespace=http://javafx.com/javafx/ - 保存配置文件后重新打开Scene Builder,后续所有新生成的FXML都会自动使用你设置的命名空间,原有文件修改后保存也不会再被覆盖为高版本命名空间。
方案2:Eclipse构建阶段自动替换(无需修改Scene Builder,适合团队协作场景)
如果担心个人配置修改影响其他同事,或者需要批量处理已有FXML文件,可以在项目构建时自动完成命名空间替换:
Maven项目配置示例:
- 在pom.xml中开启资源过滤,添加替换规则:
<build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.fxml</include> </includes> <filtering>true</filtering> </resource> <!-- 其他不需要过滤的资源单独配置 --> <resource> <directory>src/main/resources</directory> <excludes> <exclude>**/*.fxml</exclude> </excludes> </resource> </resources> <plugins> <plugin> <groupId>com.google.code.maven-replacer-plugin</groupId> <artifactId>replacer</artifactId> <version>1.5.3</version> <executions> <execution> <phase>process-resources</phase> <goals> <goal>replace</goal> </goals> </execution> </executions> <configuration> <includes> <include>${project.build.outputDirectory}/**/*.fxml</include> </includes> <replacements> <replacement> <token>xmlns="http://javafx.com/javafx/[^"]+"</token> <value>xmlns="http://javafx.com/javafx/8.0"</value> </replacement> </replacements> </configuration> </plugin> </plugins> </build>
- 后续每次执行构建时,所有FXML文件的命名空间都会自动替换为Java 8适配的版本,不需要手动修改。
临时批量处理方案
如果只需要处理现有项目的存量FXML文件,可以直接使用Eclipse的全局查找替换功能:
- 按下
Ctrl+H打开搜索面板,选择「文件搜索」标签 - 搜索内容填
xmlns="http://javafx.com/javafx/[^"]+",勾选「正则表达式」 - 文件名称模式填
*.fxml,选择搜索范围为你的工作空间/项目 - 点击「替换」,统一替换为
xmlns="http://javafx.com/javafx/8.0"即可
内容的提问来源于stack exchange,提问作者velissarious
相关产品推荐
相关产品推荐

