我遇到了使用rawr構建jar文件的問題。我在OS X Lion上使用JRuby 1.6.5.1。無法使rawr從一個非常簡單的JRuby腳本構建jar
安裝:
jruby --1.9 -S rawr install
在src目錄下創建包含一個簡單的hello_jruby.rb:
puts "Hello JRuby!"
的build_configuration.rb文件具有以下設置:
c.project_name = "hello_jruby"
c.executable_type = "console"
c.main_ruby_file = "hello_jruby"
生成jar文件:
$ jruby --1.9 -S rake rawr:jar
mkdir -p package/classes/java
javac -target 1.6 -cp lib/java/jruby-complete.jar:src -sourcepath src -d package/classes/java src/org/monkeybars/rawr/Main.java
mkdir -p package/classes/ruby
Copying source file src/hello_jruby.rb to package/classes/ruby/hello_jruby.rb
cp src/hello_jruby.rb package/classes/ruby/hello_jruby.rb
mkdir -p package/classes/META-INF
mkdir -p package/jar
=== Creating jar file: package/jar/hello_jruby.jar
cp lib/java/jruby-complete.jar package/jar/lib/java/jruby-complete.jar
的jar文件的執行都不打印輸出:
$ java -jar ./hello_jruby.jar
$ java -cp .:./lib/java/jruby-complete.jar -jar ./hello_jruby.jar
我,爲什麼這不工作完全糊塗了。我在Windows上嘗試過,但rawr使用的CLASSPATH分隔符是冒號(:)而不是分號(;),所以rawr:jar不起作用。
我必須缺少一些東西或者不完全理解如何使用rawr。
歡迎任何想法。謝謝你的時間!
編輯:其他的嘗試和結果
安裝了最新的JRuby(不使用RVM):
$ jruby --1.9 -v
jruby 1.6.7.2 (ruby-1.9.2-p312) (2012-05-01 26e08ba) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_33) [darwin-x86_64-java]
Java版本:
$ java -version
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)
安裝了最新的RAWR:
$ jruby --1.9 -S gem install rawr --source http://gems.neurogami.com
Fetching: rawr-1.6.3.gem (100%)
Successfully installed rawr-1.6.3
1 gem installed
我注意到的一件事是rawr可執行文件被放置在Ruby 1.9.2目錄中。這是正常的和預期的?
$ which rawr
/Users/david/.rvm/gems/ruby-1.9.2-p290/bin/rawr
以下命令現在失敗。我以前使用RVM安裝JRuby。在安裝最新的JRuby之前,我卸載了RVM JRuby。
$ jruby --1.9 -S rake -T
(in /Users/david/Dropbox/SourceCode/Ruby/RubySandbox/rawr_test)
rake aborted!
no such file to load -- ftools
(See full trace by running task with --trace)
然而,通過運行紅寶石耙1.9.2作品:
$ rake -T
使用以下生成的jar:
$ rake rawr:jar
生成JAR時仍沒有得到輸出或錯誤。
$ java -jar ./hello_jruby.jar
$
運行使用JRuby腳本是成功的:
$ jruby --1.9 ./hello_jruby.rb
Hello JRuby!
生成的JAR有下列文件:
$ ls -R
META-INF java ruby
hello_jruby.rb org run_configuration
./META-INF:
MANIFEST.MF
./java:
./org:
monkeybars
./org/monkeybars:
rawr
./org/monkeybars/rawr:
Main.class
./ruby:
TEST01:使用系統JRuby和避免RVM紅寶石1.9.2。
$ rvm use ruby-1.9.2
$ gem uninstall rawr
$ rvm system
$ jruby --1.9 -S gem install rawr --source http://gems.neurogami.com
$ which rawr
/Library/Frameworks/JRuby.framework/Versions/Current/bin/rawr
$ jruby --1.9 -S rawr install
$ jruby --1.9 -S rake rawr:jar
rawr可執行文件現在位於不同的位置。但是,仍然沒有從罐子的輸出。我甚至在沒有--1.9的情況下嘗試了所有jruby命令,沒有任何區別。我也要在Windows上再次拍攝它。
下一個測試是拉最新的rawr源代碼並運行所提到的說明。
再次感謝!
究竟發生了什麼?另外,你是如何安裝rawr的?如果它來自'gem install rawr',它可能很舊;從https://github.com/rawr/rawr獲取最新版本。你可能還想更新JRuby至少1.6.7。 – echristopherson
編輯:或者使用'gem install rawr --source http:// gems.neurogami.com'。 – echristopherson
命令提示符返回時沒有輸出或錯誤。我將安裝指向源代碼的gem,看看它是如何發生的。謝謝! – hooinator