2012-06-26 58 views
2

我遇到了使用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源代碼並運行所提到的說明。

再次感謝!

+0

究竟發生了什麼?另外,你是如何安裝rawr的?如果它來自'gem install rawr',它可能很舊;從https://github.com/rawr/rawr獲取最新版本。你可能還想更新JRuby至少1.6.7。 – echristopherson

+0

編輯:或者使用'gem install rawr --source http:// gems.neurogami.com'。 – echristopherson

+0

命令提示符返回時沒有輸出或錯誤。我將安裝指向源代碼的gem,看看它是如何發生的。謝謝! – hooinator

回答

2

第一:不,寶石可能不應該顯示在您的1.9.2安裝下。 RVM一定認爲你還在使用1.9.2。由於您的JRuby不在rvm中,請輸入rvm system以忽略所有安裝了rvm的Rubys。您可能首先要從1.9.2卸載rawr。

(旁白:我剛剛安裝在我的Ruby 1.9.3 RAWR,它仍然能正常工作古怪。)

跟進我的意見:我已經做了一些挖掘和它看起來像主辦的寶石在neurogami.com仍然落後於git HEAD。我對使用它的ftools也有同樣的錯誤。我做了什麼得到它的工作(在Ubuntu和Windows)是:

  1. gem install bones
  2. gem install rspec -v 1.3.0
  3. git clone https://github.com/rawr/rawr.git
  4. cd rawr
  5. rake gem:package
  6. gem install pkg/rawr-1.6.3.gem
  7. cd ..
  8. mkdir rawr-test-TEMP
  9. cd rawr-test-TEMP
  10. rawr install
  11. 創建hello_jruby.rb,並添加適當的配置選項來build_configuration.rb(我也不得不加c.target_jvm_version = 1.7因爲RAWR沒有拿起我的Java 7安裝)
  12. 編輯在rawr gem目錄中的lib/zip/zip.rb行667 - 在結尾添加一個右括號。這是上游rawr中的一個錯誤。當您嘗試運行jar
  13. rake rawr:jar
+0

哦,不要在步驟12中編輯zip.rb,您可以在步驟4和5之間的rawr源目錄中對其進行編輯。它位於./lib/zip/zip.rb中。 – echristopherson

+0

非常感謝。我會試試看。使用rvm系統不適合我。我也將再次給Windows一個鏡頭。 – hooinator

+0

Mac仍然沒有喜悅,但Windows正在使用簡單的hello_jruby.rb。我將Windows更新到JRuby 1.6.7.2並安裝了http://gems.neurogami.com rawr gem。現在,我將在Windows上工作。如果你真的想排除故障,我們可以恢復到電子郵件並在這裏​​報告? – hooinator

相關問題