Java 版的 Ruby 解釋器 JRuby 1.7.14 發(fā)布
JRuby 1.7.14 發(fā)布 ,此版本現(xiàn)已提供下載:
JRuby 1.7 主要是為了兼容 Ruby 1.9.3 版本,改進(jìn)記錄如下:
解決了 30 個(gè) issues
修復(fù)了 Jar 文件源潛在的內(nèi)存泄漏問題
因?yàn)樵?Rails 應(yīng)用啟動(dòng)比較慢,所以默認(rèn)禁用 invokedynamic
load/require 內(nèi)部重構(gòu)和簡(jiǎn)化
解決了一些兼容性問題
1.7.14 修復(fù)的 bug:
#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虛擬機(jī)(JVM)的一種解釋程序,它結(jié)合了Ruby語(yǔ)言的簡(jiǎn)易性和功能強(qiáng)大的JVM的執(zhí)行機(jī)制,包括與 Java庫(kù) 全面集成。Rails徹底加快及簡(jiǎn)化了Web應(yīng)用的開發(fā),不過(guò)它讓人覺得不夠成熟,特別是在高端企業(yè)級(jí)功能方面。另一方面,Java平臺(tái)及其虛擬機(jī)、庫(kù)和 應(yīng)用服務(wù)器的速度、穩(wěn)定性和功能方面卻一直在提升,現(xiàn)在已被公認(rèn)為是開發(fā)高端服務(wù)器應(yīng)用的領(lǐng)先平臺(tái)。不過(guò)如果Java平臺(tái)不與Ruby等新興語(yǔ)言聯(lián)系在一 起,就有可能落后于流行趨勢(shì)。
示例代碼:
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
- 在Mac OS上自行編譯安裝Apache服務(wù)器和PHP解釋器
- 解釋執(zhí)行和編譯執(zhí)行的區(qū)別?
- windows命令行中java和javac、javap使用詳解(java編譯命令)
- java編譯時(shí)出現(xiàn)使用了未經(jīng)檢查或不安全的操作解決方法
- android apk反編譯到j(luò)ava源碼的實(shí)現(xiàn)方法
- Eclipse不自動(dòng)編譯java文件的終極解決方法
- java教程之java程序編譯運(yùn)行圖解(java程序運(yùn)行)
- JAVA設(shè)計(jì)模式之解釋器模式詳解
- Java版的Ruby解釋器 JRuby簡(jiǎn)介
- 編譯和解釋的區(qū)別是什么
相關(guān)文章
舉例理解Ruby on Rails的頁(yè)面緩存機(jī)制
這篇文章主要介紹了舉例理解Ruby on Rails的頁(yè)面緩存機(jī)制,本文來(lái)自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下2015-04-04CentOS 7下配置Ruby語(yǔ)言開發(fā)環(huán)境的方法教程
對(duì)于新入門的開發(fā)者,如何安裝 Ruby, Ruby Gems 和 Rails 的運(yùn)行環(huán)境可能會(huì)是個(gè)問題,下面這篇文章主要給大家分享了在CentOS 7下配置Ruby語(yǔ)言開發(fā)環(huán)境的方法教程,文中介紹的非常詳細(xì),需要的朋友們下面來(lái)一起看看吧。2017-05-05Ruby實(shí)現(xiàn)網(wǎng)頁(yè)圖片抓取
本文給大家分享的是個(gè)人使用ruby編寫的抓取網(wǎng)頁(yè)圖片的代碼,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2016-04-04Ruby中使用設(shè)計(jì)模式中的簡(jiǎn)單工廠模式和工廠方法模式
這篇文章主要介紹了Ruby中使用設(shè)計(jì)模式中的簡(jiǎn)單工廠模式和工廠方法模式的示例,這兩種模式經(jīng)常被用于Ruby on Rails開發(fā)的結(jié)構(gòu)設(shè)計(jì)中,需要的朋友可以參考下2016-03-03