fitnesse slim支持哪个java版本?

cvxl0en2  于 2023-06-04  发布在  Java
关注(0)|答案(1)|浏览(187)

很久以前我就使用过Fitnesse,我正试图在Windows 11上再次使用它来测试一些Java代码。但我遇到了以下问题:
我已经创建了一个名为SlimVarDbl的fixture,可以在文件夹C:\Users\Cheng\Documents\Proj\VarianceArithemtic\Java\bin\fitnesse中看到SlimVarDbl.class文件。我确信我可以调用new SlimVarDbl()来构造一个示例。
所以我创建了一个测试页面如下:

!define TEST_SYSTEM {slim} 
!path C:\Users\Cheng\Documents\Proj\VarianceArithemtic\Java\bin\fitnesse\

!|Slim Var Dbl                        |
|value tolerance|dev tolerance|comment|
|3E-15          |3E-15        |52-bit |

但是当我尝试运行测试时,错误是:

Could not invoke constructor for SlimVarDbl[0]

就好像fitnesse不能识别类文件一样。
fitnesse-standalone.jar的版本是v20230503。我的Java版本是1.8.0_361。
如果我把java版本升级到jdk 20,我在测试页面时得到以下错误:

Test system terminated with exception [fitnesse.testsystems.TestExecutionException: java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release]

这是Java版本问题还是其他问题?

6ovsh4lw

6ovsh4lw1#

这是Java版本问题还是其他问题?
是的
您使用的Fitnesse版本取决于已弃用的SecurityManager功能。从Java 18开始,应用程序只有在使用特殊命令行选项运行时才能使用该功能;参见JEP 411: Deprecate the Security Manager for Removal
如果您想运行该版本的Fitnesse,建议使用早期版本的Java。事实上,Fitnesse下载页面(目前)说:
FitNesse需要Java Runtime Environment(JRE)版本8或11。
然而,根据this issue,Fitnesse似乎可以在Java 17(LTS)上工作,尽管有一些关于安全管理器弃用的日志消息。Fitnesse直到Java 18才真正“崩溃”。
一般来说,除非你需要非LTS版本的Java的特性。建议坚持使用LTS Java版本。非LTS Java版本在发布后6个月就结束了!(最新的并不总是最好的。)Java的当前LTS版本是8、11和17。Java 21(预计将于今年晚些时候发布)也将是一个LTS版本。

相关问题