如何检查哪个JRuby版本与哪个Java版本兼容?

时间:2016-08-02 01:53:13

标签: version jruby

在JRuby发行说明中,我经常发现特定版本的JRuby与哪个版本的Ruby兼容。它与哪个版本的Java运行时兼容?

例如,http://jruby.org/2016/05/27/jruby-9-1-2-0页面提到它与Ruby 2.x兼容,但对Java运行时版本没有任何说明。

2 个答案:

答案 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;
}

enter image description here