在Java 8环境开发Java FX应用时,如何关闭CSS日志记录?
解决JavaFX 8中CSS日志刷屏的已知问题
我刚好熟悉这个情况——你在使用JavaFX 8(java.runtime.version=1.8.0_71-b15)搭配Eclipse Mars.2开发首个应用时,引入CSS后控制台被错误消息刷屏的问题,确实是Java 8里一个无法修复的已知bug,官方原本计划在Java 9中彻底解决这个问题。
目前社区最通用的临时解决方案就是关闭CSS相关的日志记录,我给你两种可行的实现方式:
方式一:在应用代码中禁用CSS日志
在你的JavaFX应用启动类里,添加一段日志级别配置代码即可:
import java.util.logging.Level; import java.util.logging.Logger; import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.control.Control; public class YourApp extends Application { @Override public void start(Stage primaryStage) { // 关闭Control类相关的CSS日志输出 Logger.getLogger(Control.class.getName()).setLevel(Level.OFF); // 这里写你的应用初始化逻辑 // ... } public static void main(String[] args) { launch(args); } }
方式二:通过Eclipse VM参数全局禁用
如果不想修改代码,可以直接在Eclipse的运行配置里添加VM参数:
- 右键你的JavaFX项目,选择
Run As->Run Configurations - 切换到
Arguments标签页 - 在
VM arguments输入框中添加以下参数:
-Djavafx.css.logger.level=OFF
两种方式都能有效阻止CSS错误消息刷屏控制台,因为Java 8已经停止维护,这个bug不会再有官方修复了,所以这个临时方案是目前最稳妥的选择。
内容的提问来源于stack exchange,提问作者Pete
相关产品推荐
相关产品推荐

