java.io.IOException:rsrc:application / application.bss错误的二进制CSS版本:5。预期版本小于或等于3

时间:2016-02-21 03:09:51

标签: java javafx javafx-2 fxml fxmlloader

我使用javafx创建了一个示例应用程序。由于我网络中的某些限制,我无法在e(fx)clipse等安装fxpackaging工具。

我使用eclipse创建了jar(版本4.5.1) 当我使用cmd

中的以下命令执行jar文件时,应用程序工作正常
java -jar myjarfile.jar

问题1 :(已解决)

我在'命令提示符'

中观察到了这个异常
java.net.MalformedURLException: Coult not open InputStream for URL 
'rsrc:application/application.bss'

我使用下面的命令创建了bss文件(在项目根级别执行)

javafxpackager -createbss -srcfiles application.css -outdir .

然后将输出bss文件复制到正确的位置(程序除了位于特定文件夹的资源)。

问题2 :(未解决)

初步例外已经解决&我可以看到字体按预期显示。但在后台我可以看到以下异常

  

java.io.IOException:rsrc:application / application.bss错误的二进制CSS   版本:5。预期版本小于或等于3

问题:

如何解决这个'错误的二进制CSS版本'异常(在命令提示符中显示)? 请注意,我没有看到在前台运行的应用程序有任何问题。

出于测试目的,我在application.css文件中使用了单线样式代码

.label{-fx-text-fill: black;}

→使用eclipse创建的jar文件(JDK 1.7)& Windows正在JRE 1.7.0_91上运行

css文件:如上所述的一个班轮

css file

bss文件 bss file

包结构

package

2 个答案:

答案 0 :(得分:2)

正如JoséPereda所说,bss是Java 8的第5版。基于JavaFX 8 CSS Reference Guide标签,语法是正确的。但是,这适用于Java 8,而您当前正在使用Java 7.如果您使用的是Java 8,请配置eclipse并设置构建路径以使用它并将PATH变量相应地设置为Java 8.

如果问题仍然存在:

如果在更新后它仍无法正常工作,我们会尝试稍微不同地编译它,看看会发生什么。根据{{​​3}},编译.css文件后,您不需要.bss文件。

在易于访问的某处创建Test文件夹。我们将使用它来查看单独编译的文件将如何影响异常,因为此时更新Java没有做任何事情。

首先,尝试使用基本文件运行程序。如果您的Main.java文件不依赖于项目中的其他java文件,则将该文件复制到我们最近创建的test文件夹中。如果没有,请仅复制使用css的必要部分(例如调用css file的场景和标签),并将其粘贴到新{{1}中的新Main.java中文件夹。

继续前进,您将不得不在测试文件夹中打开命令窗口。您可以通过在Windows资源管理器的test文件夹中按SHIFT + RIGHT CLICK并单击test

来执行此操作

在此之后,通过在新打开的提交提示窗口中键入Open command window here来编译Main.java

javac Main.java

接下来,复制appication.css,但将其重命名为Main.css,以进行测试。然后,在命令提示符窗口中运行它(你没有-outfile争论;这应该没关系,但这是一个轻微的安全措施):

javafxpackager -createbss -srcfiles Main.css -outdir . -outfile Main

现在你应该看到你有Main.css。现在,使用相同的命令窗口,您可以轻松运行该文件,看看会发生什么。

java Main

如果这个答案确实帮助了您,请提供评论,如果这有助于您以及您实际用于解决问题的答案的哪一部分,谢谢!

答案 1 :(得分:0)

根据JoséPereda的评论,Abob78我做了一个实验。我已经弄清楚了,如果我使用JRE 1.8

,就不会出现问题
  1. 命令提示1:指向JRE 1.7.0_91→上述异常
  2. 命令提示符2 指出未遵守JRE 1.8.0_40→异常
  3. 两者同时运行&使用相同的JAR文件。