脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Ruby - Java 版的 Ruby 解释器 JRuby 1.7.14 发布

Java 版的 Ruby 解释器 JRuby 1.7.14 发布

2020-04-17 10:44脚本之家 Ruby

JRuby,一个采用纯Java实现的Ruby解释器,由JRuby团队开发。它是一个自由软件,在CPL/GPL/LGPL三种许可协议下发布。

JRuby 1.7.14 发布 ,此版本现已提供下载:

http://www.jruby.org/download

JRuby 1.7 主要是为了兼容 Ruby 1.9.3 版本,改进记录如下:

解决了 30 个 issues

修复了 Jar 文件源潜在的内存泄漏问题

因为在 Rails 应用启动比较慢,所以默认禁用 invokedynamic

load/require 内部重构和简化

解决了一些兼容性问题

1.7.14 修复的 bug:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#1923 - String#start_with? returns false when using an empty string
#1905 - Tempfile and deleteOnExit
#1899 - Can't call static method on Java 8 interface
#1898 - Fix the memory leak and actually close the resources.
#1889 - NPE from org.jruby.java.proxies.ArrayJavaProxy.to_a
#1888 - native memory leak when reading files from inside a .jar
#1859 - JMX tries to double-bind a port when using bundle exec
#1858 - JRuby with Java 8 4 to 10 times slower than Java 7
#1852 - JRubyClassloader seems to have a problem with file urls pointing to jar ...
#1850 - embedded jars do not get loaded
#1846 - Fix $LOAD_FEATURES paths for 1.8
#1818 - fix ArrayJavaProxy#to_a failure on arrays containing null
#1813 - can not load resources from jar anymore with jar uri
#1809 - apply minor enebo's comments
#1808 - Fix BigDecimal#round behavior with NAN and INFINITY
#1805 - Zlib crc improvements
#1803 - Fix minor bug in `setNativeEnabled`, and expose it in ScriptingContainer
#1802 - Fix Encoding::Converter#inspect output
#1799 - mvn -Pall fails at the documentation step
#1790 - Make Time#to_r consistent with MRI
#1777 - ServerSocket#accept_nonblock returns the server's port, not the client's
#1772 - avoid sub-classing ThreadLocal since it will leak in envs such as .wars
#1765 - added a java_field method for use in the jrubyc command.
#1762 - enhanced the java_class compiler so it can handle multiple constructors
#1750 - Refactor LoadService to make use of resources
#1729 - no valid struct layout for Ethon::Curl::Slist
#1676 - Empty hash optimization
#1580 - IO.select raises CancelledKeyException on shutdown
#1520 - Date comparison as java objects
#1435 - bouncy-castle-java JARs missing when warbling with JRuby 1.7.10

JRuby是面向Ruby、基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与 Java库 全面集成。Rails彻底加快及简化了Web应用的开发,不过它让人觉得不够成熟,特别是在高端企业级功能方面。另一方面,Java平台及其虚拟机、库和 应用服务器的速度、稳定性和功能方面却一直在提升,现在已被公认为是开发高端服务器应用的领先平台。不过如果Java平台不与Ruby等新兴语言联系在一 起,就有可能落后于流行趋势。

示例代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
require "java"
include_class "java.util.TreeSet"
include_class "com.example.CallMe"
include_class "com.example.ISpeaker"
puts "Hello from ruby"
set = TreeSet.new
set.add "foo"
set.add "Bar"
set.add "baz"
set.each { |v| puts "value: #{v}" }
cm = CallMe.new
cm.hello
$globalCM.hello
class CallJava
include ISpeaker
def initialize
 super
 @count = 0
end
def say(msg)
 puts "Ruby saying #{msg}"
end
def addOne(from)
#  m.synchronize {
  @count += 1
  puts "Now got #@count from #{from}"
#  }
end
end

 

延伸 · 阅读

精彩推荐
  • RubyCentOS中配置Ruby on Rails环境

    CentOS中配置Ruby on Rails环境

    经过一个上午的折腾,终于把ROR环境在CentOS中搞定,绕了很多弯路,把文章写下来总结一下 ...

    可乐加糖4762020-04-12
  • RubyRuby简洁学习笔记(一):字符串、数字、类和对象

    Ruby简洁学习笔记(一):字符串、数字、类和对象

    这篇文章主要介绍了Ruby简洁学习笔记(一):字符串、数字、类和对象,本文是学习笔记第一篇,需要的朋友可以参考下 ...

    脚本之家2472020-04-20
  • RubyRuby进行文件信息输出实例代码

    Ruby进行文件信息输出实例代码

    Ruby进行文件信息输出实例代码,数据是随机的,所以每次的记录都会不同。 ...

    ruby教程网2962020-04-10
  • Ruby简要说明Ruby中的迭代器

    简要说明Ruby中的迭代器

    这篇文章主要介绍了Ruby中的迭代器,迭代器的概念在动态语言的编程中十分重要,文章中介绍了Ruby中的each迭代器和collect迭代器,需要的朋友可以参考下 ...

    goldensun2772020-04-25
  • Ruby剖析 Ruby 访问控制

    剖析 Ruby 访问控制

    前面,我们说 Ruby 没有函数,只有方法.而且实际上有不止一种方法.这一节我们介绍 访问控制 (accesscontrols). 想想当我们在最高层而不是在一个类的定义里定义...

    ruby教程网3572020-04-08
  • RubyRuby设计模式编程中使用Builder建造者模式的实例

    Ruby设计模式编程中使用Builder建造者模式的实例

    这篇文章主要介绍了Ruby设计模式编程中使用Builder建造者模式的实例,建造者模式将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表...

    范孝鹏2192020-05-07
  • RubyRuby环境下安装使用bundler来管理多版本的gem

    Ruby环境下安装使用bundler来管理多版本的gem

    这篇文章主要介绍了Ruby环境下安装使用bundler来管理多版本的gem的方法,举了Ruby On Rails中的应用实例来进行演示,需要的朋友可以参考下 ...

    日拱一卒4332020-05-10
  • RubyRuby迭代器的7种技巧分享

    Ruby迭代器的7种技巧分享

    这篇文章主要介绍了Ruby迭代器的7种技巧分享,Ruby中的迭代器非常人性化,本文既是讲解了7个技巧也是讲解了7种迭代器,需要的朋友可以参考下 ...

    脚本之家4782020-04-20