我們的應用程序是一個RoR應用程序,目前使用JRuby版本1.7.22和JRE 8_65。我們的應用程序是本地解決方案,因此我們使用JRuby將應用程序託管在目標Windows Server 2012 R2系統上的JVM上。我們編譯我們的Ruby代碼,使用JRuby 9.0.5.0無法加載編譯的ruby文件
jruby -S jrubyc
這需要在.RB文件並將其編譯爲.class文件。在原始的.rb中,它會像類似的那樣加載到類文件中。
load __FILE__.sub(/\.rb$/, ".class")
這一切都在JRuby 1.7.22
作品現在,我們要更新JRuby中9.0.5.0,但遇到了一些問題,當涉及到部署我們的應用程序。基本上,上面的代碼名爲.rb文件裏說行不工作了,並試圖運行耙分貝時,我們得到的錯誤:設置
rake aborted!
LoadError: C:/appname/app/models/app_attribute.class is not compiled Ruby; use java_import to load normal classes
C:/appname/app/models/app_attribute.rb:1:in `<top>'
C:/appname/db/seeds.rb:10:in `<top>'
C:/appname/db/seeds.rb:9:in `block in (root)'
Tasks: TOP => db:setup => db:seed
(See full trace by running task with --trace)
大。所以我用java_import替換負載
rake aborted!
ArgumentError: not a valid Java identifier: C:/appname/app/models/app_attribute.class
uri:classloader:/jruby/java/core_ext/object.rb:43:in `block in java_import'
uri:classloader:/jruby/java/core_ext/object.rb:34:in `java_import'
C:/appname/app/models/app_attribute.rb:1:in `<top>'
C:/appname/db/seeds.rb:10:in `<top>'
C:/appname/db/seeds.rb:9:in `block in (root)'
Tasks: TOP => db:setup => db:seed
(See full trace by running task with --trace)
無論我嘗試什麼,仍然無法正常工作。我看了看這個帖子:https://github.com/jruby/jruby/issues/3018 我試圖傳遞參數
jruby -Xaot.loadClasses=true
但我得到一個警告說,aot.LoadClasses無法識別。即使我看到它的屬性,當我鍵入
jruby -Xproperties
我做的研究這個有很多,並可能已經看過這方面的一切在互聯網上。任何輸入將不勝感激。有什麼我錯過了嗎?我不完全熟悉Java。
謝謝。