在JRuby发行说明中,我经常发现特定版本的JRuby与哪个版本的Ruby兼容。它与哪个版本的Java运行时兼容?
例如,http://jruby.org/2016/05/27/jruby-9-1-2-0页面提到它与Ruby 2.x兼容,但对Java运行时版本没有任何说明。
答案 0 :(得分:2)
它不在发行说明中,因为它在点发布之间没有变化(除非另有说明),应该是下载但不是。目前,您可以在项目中找到README
每个主要版本的JRuby都支持JVM支持它发布的时间,后来的版本通常会修复对较新Java版本的支持,但不会放弃对旧版本的支持......因此:
JRuby 1.7.x支持Java 6或更高版本(7,8,可能支持9)
JRuby 9.0 / 1支持Java 7或更高版本(8,支持Java 9)
答案 1 :(得分:0)
看起来 jruby-1.7.27 对我来说在 openjdk 15 下“工作”了一个变化:
平台类 (core/src/main/java/org/jruby/ext/ffi/Platform.java) 正在检测基于 1.x 版本字符串的版本,即 java 1.5、1.6、1.7 等。用于 Java 5、6、7。
openjdk 使用 : 15.0.2(作为 java 15 的示例)作为版本字符串。
protected Platform(OS_TYPE os) {
... (to line 231)
int version = 5;
try {
String versionString = System.getProperty("java.version");
if (versionString != null) {
String[] v = versionString.split("\\.");
//we are looking for the major version here
//Oracle uses: 1.8.0_101 which has the major version in the second position
//openjdk uses: 15.0.2
version = Integer.valueOf(v[0]);
if(version == 1) {
version = Integer.valueOf(v[1]);
}
}
} catch (Exception ex) {
version = 0;
}
javaVersionMajor = version;
}