久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔
站長(zhǎng)百科 | 數(shù)字化技能提升教程 數(shù)字化時(shí)代生存寶典
首頁(yè)
數(shù)字化百科
電子書
建站程序
開發(fā)
服務(wù)器
辦公軟件
開發(fā)教程
服務(wù)器教程
軟件使用教程
運(yùn)營(yíng)教程
熱門電子書
WordPress教程
寶塔面板教程
CSS教程
Shopify教程
導(dǎo)航
程序頻道
推廣頻道
網(wǎng)賺頻道
人物頻道
網(wǎng)站程序
網(wǎng)頁(yè)制作
云計(jì)算
服務(wù)器
CMS
論壇
網(wǎng)店
虛擬主機(jī)
cPanel
網(wǎng)址導(dǎo)航
WIKI使用導(dǎo)航
WIKI首頁(yè)
最新資訊
網(wǎng)站程序
站長(zhǎng)人物
頁(yè)面分類
使用幫助
編輯測(cè)試
創(chuàng)建條目
網(wǎng)站地圖
站長(zhǎng)百科導(dǎo)航
站長(zhǎng)百科
主機(jī)偵探
IDCtalk云說(shuō)
跨境電商導(dǎo)航
WordPress啦
站長(zhǎng)專題
網(wǎng)站推廣
網(wǎng)站程序
網(wǎng)站賺錢
虛擬主機(jī)
cPanel
網(wǎng)址導(dǎo)航專題
云計(jì)算
微博營(yíng)銷
虛擬主機(jī)管理系統(tǒng)
開放平臺(tái)
WIKI程序與應(yīng)用
美國(guó)十大主機(jī)
編輯“
JRuby
”
人物百科
|
營(yíng)銷百科
|
網(wǎng)賺百科
|
站長(zhǎng)工具
|
網(wǎng)站程序
|
域名主機(jī)
|
互聯(lián)網(wǎng)公司
|
分類索引
跳轉(zhuǎn)至:
導(dǎo)航
、?
搜索
警告:
您沒(méi)有登錄。如果您做出任意編輯,您的IP地址將會(huì)公開可見(jiàn)。如果您
登錄
或
創(chuàng)建
一個(gè)賬戶,您的編輯將歸屬于您的用戶名,且將享受其他好處。
反垃圾檢查。
不要
加入這個(gè)!
'''JRuby''',一個(gè)采用純[[Java]]實(shí)現(xiàn)的[[Ruby]]解釋器,由JRuby團(tuán)隊(duì)開發(fā)。它是一個(gè)[[自由軟件]],在[[CPL]]/[[GPL]]/[[LGPL]]三種許可協(xié)議下發(fā)布。主要開發(fā)者有Charles Nutter、Thomas Enebo、Ola Bini、Nick Sieger等。 ==簡(jiǎn)介== 通過(guò)JRuby,你可以在[[JVM]]上直接運(yùn)行[[Ruby]]程序,調(diào)用Java的類庫(kù)。很多Java編寫的Ruby IDE都是使用JRuby來(lái)解釋語(yǔ)法的。 [[2006年]],[[SUN]]雇傭了兩名JRuby團(tuán)隊(duì)的兩名核心成員Charles Nutter和Thomas Enebo全職開發(fā)JRuby,后來(lái)ThoughtWorks也雇傭了一名JRuby項(xiàng)目的核心成員全職開發(fā)JRuby。 自此JRuby發(fā)展非常迅速,立刻推出一個(gè)50%性能提升的版本。最近又發(fā)布了0.9.8版,正式宣布官方支持Rails,單元測(cè)試有98%成功通過(guò)(也是因此稱作0.9.8版),現(xiàn)在開發(fā)小組全力修復(fù)剩下的2%,將會(huì)很快發(fā)布100%支持Rails的JRuby 1.0。但是目前JRuby的主要精力集中在功能實(shí)現(xiàn)上,性能還不如理想,1.0發(fā)布之后應(yīng)該就會(huì)全力解決性能問(wèn)題。 ==歷史== {| border=1 |- !width=60| 版本 !width=110| 發(fā)布日期 !width=300| 改進(jìn) |- |0.9||2006-08-01||Rails支持 |- |1.1||2008-03-28||比Ruby MRI 1.8.7性能更好<br/>[[AOT模式]]與[[JIT模式]] |- |1.1.4||2008-08-28|| |- |1.2.0||2009-03-16||提供對(duì)Ruby 1.9幾乎完全支持 (包含JIT編譯器)<br/>初步的[[Android]]支持 |- |1.3.0||2009-06-03||性能提升 |- |1.4.0||2009-11-02||支持Ruby 1.8.7<br/>Ruby 1.9支持的改進(jìn) |} ==使用jprofiler監(jiān)控jruby腳本== jruby本質(zhì)上也是啟動(dòng)一個(gè)jvm,然后去讀ruby[[腳本]]并解釋執(zhí)行(也可以[[編譯]]),因此jprofiler理所當(dāng)然也可以去監(jiān)控jruby腳本的執(zhí)行。 ===執(zhí)行=== jruby hello.rb等價(jià)于執(zhí)行: java -xmx378m -xss1024k -djruby.home=/usr/local/jruby -djruby.lib=/usr/local/jruby/lib djruby.script=jruby org.jruby.main hello.rb這一點(diǎn),你可以通過(guò)ps aux |grep jruby 看到。因此配置jprofiler就簡(jiǎn)單了,在vm arguments加上這些參數(shù)(可以包括jruby的參數(shù)),比如本例中的vm arguments配置如下: -server -xmx378m -xss1024k -djruby.script=jruby -djruby.thread.pooling=true -djruby.jit.threshold=0 -djruby.compile.fastest=true -djruby.home=d:jrubyjruby-1.1rc2 -djruby.lib=d:jrubyjruby-1.1rc2lib main class or executable jar填上:org.jruby.main。然后就是arguments一欄填上你的腳本位置: d:rubylibhello.rb 最后,別忘了將jruby/lib目錄下的bsf.jar和jruby.jar加入class path。 可以用jprofiler去觀察gc、[[線程]]和鎖、heap等等了。 ==運(yùn)行JRuby程序== JRuby的發(fā)行中帶有一個(gè)tar.gz文件。在本例中,基于[[Windows]]系統(tǒng)并使用JRuby的jruby-bin-0.9.1.tar.gz[[二進(jìn)制]]發(fā)行版本以及Java SE版本1.5.0_06。在解壓這些發(fā)行文件后,會(huì)出現(xiàn)一個(gè)jruby-0.9.1文件夾,其中包含的子文件夾有:bin,docs,lib和samples。注意,你可以添加一個(gè)指向這個(gè)目錄的JRUBY_HOME[[環(huán)境變量]],然后把%JRUBY_HOME%bin(在[[UNIX]]系統(tǒng)上是$JRUBY_HOMEbin)添加到你的系統(tǒng)路徑下。JRuby發(fā)行版的bin目錄中包含一個(gè)jruby.bat文件,它用于運(yùn)行JRuby解釋器程序。從命令行下運(yùn)行“jruby -version”可以測(cè)試JRuby是否正確工作: C:JRubyjruby-0.9.1>jruby -version ruby 1.8.5 (0) [java] 在上面的samples目錄中,你可以找到一些展示JRuby功能的示例Ruby程序。作為第一個(gè)示例,你可以看一下下面這個(gè)java2.rb示例。這個(gè)示例包含了下列Ruby[[代碼]]: <pre>require "java" filename = "./samples/java2.rb" fr = java.io.FileReader.new filename br = java.io.BufferedReader.new fr s = br.readLine print "------ ", filename, "------n" while s puts s.to_s s = br.readLine end print "------ ", filename, " end ------n"; br.close </pre> 第一行代碼負(fù)責(zé)啟動(dòng)JRuby的Java支持并且允許一個(gè)Ruby程序使用Java[[類]]。 該程序定義了一個(gè)指向文件“./samples/java2.rb”的java.io.FileReader。然后,它聲明了一個(gè)java.io.BufferedReader用于緩沖經(jīng)由FileReader讀取的[[數(shù)據(jù)]]。本文[[程序]]從這個(gè)文件中讀取所有的代碼并且把它們輸出到控制臺(tái)。下面是使用JRuby運(yùn)行這個(gè)Ruby腳本的輸出結(jié)果: <pre>C:JRubyjruby-0.9.1>jruby .samplesjava2.rb ------ ./samples/java2.rb------ require "java" filename = "./samples/java2.rb" fr = java.io.FileReader.new filename br = java.io.BufferedReader.new fr s = br.readLine print "------ ", filename, "------n" while s puts s.to_s s = br.readLine end print "------ ", filename, " end ------n"; br.close ------ ./samples/java2.rb end ------ C:JRubyjruby-0.9.1></pre> 到現(xiàn)在為止,你已經(jīng)能夠使用JRuby運(yùn)行一個(gè)Ruby腳本;該腳本能夠使用Java類讀取一個(gè)文件并且輸出其內(nèi)容。這是JRuby向Ruby用戶展示的一個(gè)強(qiáng)有力的概念。 ==在JRuby中使用Java類== JRuby提供的最重要的方法是Kernel#include_class方法。這個(gè)方法允許Ruby按如下方式使用Java類: <pre>require "java" # Include Java's FileReader include_class "java.io.FileReader" filename = "./samples/java2.rb" fr = FileReader.new filename</pre> 然而,有可能在Java類和Ruby類之間存在命名沖突問(wèn)題。其中,[[字符串]]的使用就是一個(gè)例子;Java中提供了java.util.String,而Ruby中提供了Kernel::String。為了解決這個(gè)命名沖突問(wèn)題,你可以在包括它時(shí)重命名這個(gè)類-通過(guò)把一個(gè)代碼塊傳遞給include_class方法調(diào)用來(lái)實(shí)現(xiàn): <pre>require "java" # Include Java's String as JString include_class("java.lang.String") { |package, name| "J" + name } s = JString.new("Hello World from JRuby!") puts s</pre> 通過(guò)定義一個(gè)包括Java類定義的Ruby模塊,你還能夠避免這個(gè)命名沖突: <pre>require "java" module JavaLang include_package "java.lang" end s = JavaLang::String.new("Hello World from JRuby!") puts s</pre> 下面提供了一個(gè)示例程序,javaHello.rb,它使用Java的HashMap來(lái)存儲(chǔ)三個(gè)字符串并且打印它們。這個(gè)程序中有趣的地方在于,它調(diào)用Ruby的java.util.Set(通過(guò)java.util.HashMap.keySet()方法調(diào)用返回)中的each方法。這允許把通過(guò)這個(gè)“each”方法返回的結(jié)果鍵傳遞給相應(yīng)的代碼塊,然后該代碼塊使用該鍵取得相應(yīng)的字符串,并且輸出該字符串。 <pre>require "java" module JavaLang include_package "java.lang" end include_class("java.util.HashMap") { |pkg, name| "J" + name } s = JavaLang::StringBuffer.new("Hello Java World") puts s.append(", I love JRuby") m = JHashMap.new() m.put("java", "Java") m.put("ruby", "Ruby") m.put("jruby", "JRuby") puts m m.keySet().each { |key| puts m.get(key) }</pre> 下面是當(dāng)使用JRuby運(yùn)行它時(shí)的輸出結(jié)果: <pre>C:\JRuby>jruby javaHello.rb Hello Java World, I love JRuby {java=Java, ruby=Ruby, jruby=JRuby} Java Ruby JRuby C:\JRuby></pre> 一個(gè)完全使用Java編寫的類似上面的程序看起來(lái)如下所示: <pre>StringBuffer s = new StringBuffer("Hello Java World"); s.append(", I love JRuby"); HashMap<String> m = new HashMap<String>(); m.put("java", "Java") m.put("ruby", "Ruby") m.put("jruby", "JRuby") for (String key: m.keySet()) { println(m.get(key)); }</pre> ==在JRuby中使用Swing== [[Swing]]是一個(gè)[[GUI]]框架,它允許開發(fā)者使用Java語(yǔ)言創(chuàng)建圖形化[[應(yīng)用程序]]。下面是一個(gè)示例程序,javaSwingHello.rb,它使用Java的Swing來(lái)打印一個(gè)消息: <pre>require 'java' include_class "javax.swing.JFrame" include_class "javax.swing.JLabel" frame = JFrame.new() jlabel = JLabel.new("Hello from JRuby with Swing") frame.getContentPane().add(jlabel) # frame.content_pane.add(label) frame.pack() frame.setVisible(true) frame.visible = true</pre> 從命令行如下運(yùn)行這個(gè)程序: C:\JRuby>jruby javaSwingHello.rb 一個(gè)帶有文本“Hello from JRuby with Swing”的新窗口將會(huì)出現(xiàn): [[Image:Jruby1.jpg]] ==總結(jié)== 本條目提供一個(gè)JRuby語(yǔ)言的簡(jiǎn)介。JRuby允許現(xiàn)有Java開發(fā)者充分利用Ruby提供的強(qiáng)有力和易于使用的編程特點(diǎn),而Ruby開發(fā)者將能夠自由使用龐大的曾使Java廣泛地應(yīng)用于各個(gè)軟件開發(fā)領(lǐng)域的Java庫(kù)來(lái)進(jìn)行開發(fā)。 ==相關(guān)條目== *[[Eclipse]] *[[J2EE]] *[[JSP]] ==參考來(lái)源== *http://zh.wikipedia.org/zh/JRuby *http://developer.51cto.com/art/200909/34170_1.htm *http://baike.baidu.com/view/828081.htm [[Category:自由軟件]] [[category:JAVA]]
摘要:
請(qǐng)注意,您對(duì)站長(zhǎng)百科的所有貢獻(xiàn)都可能被其他貢獻(xiàn)者編輯,修改或刪除。如果您不希望您的文字被任意修改和再散布,請(qǐng)不要提交。
您同時(shí)也要向我們保證您所提交的內(nèi)容是您自己所作,或得自一個(gè)不受版權(quán)保護(hù)或相似自由的來(lái)源(參閱
Wordpress-mediawiki:版權(quán)
的細(xì)節(jié))。
未經(jīng)許可,請(qǐng)勿提交受版權(quán)保護(hù)的作品!
取消
編輯幫助
(在新窗口中打開)
取自“
http://kktzf.com.cn/wiki/JRuby
”