2014-12-04 104 views
0

我想在Android的Java應用程序中運行JRuby腳本。有沒有什麼辦法可以在我的Java應用程序中爲Android執行JRuby腳本?

  • javax.script不包括在Android系統。您可以嘗試手動導入包,但是當您嘗試獲取JRuby引擎時,它將返回null。
  • Apache BSF無法加載引擎。你會得到一個與「特權例外:無法加載類文件」相關的錯誤 - 我想Android不允許這種加載,所以你不能動態加載BSF的JRuby。
  • SL4A根本沒有任何意義。除了他們沒有明確指示如何使用它來運行JRuby之外,最後一次更新就像4年前一樣。
  • Ruboto用於使用Ruby編寫Android應用程序。這不是我想要的。我只想在我的Java應用程序中運行一個Ruby代碼片段。

是否有任何您可以在Android的Java應用程序中運行JRuby腳本嗎?有沒有清楚的指示?

+0

您認爲該如何工作? Ruby沒有安裝在手機上,那麼運行腳本會是什麼?如果你正在談論一款根深蒂固的手機,那麼你可能能夠實現它的功能,但這將是關於它的。 – 2014-12-04 21:43:26

+0

我認爲https://github.com/jruby/jruby/wiki/JRubyAndJavaCodeExamples#Java_calling_JRuby在!useBSF分支大致是什麼https://code.google.com/p/jruby-for-android/(「一個Android提供JRuby腳本環境的應用程序,包括IRB shell,源代碼編輯器和腳本管理器。「)。 – zapl 2014-12-04 21:57:41

+0

@zapl,感謝您的鏈接,但它仍然無法找到'org.jruby.javasupport.bsf.JRubyEngine' - 但我知道它在那裏,因爲它適用於Desktop。但不適用於Android。 – Voldemort 2014-12-04 22:11:38

回答

0

顯然,您可以使用jrubyc的--java標誌從jruby代碼生成java源代碼。

如果你沒有絕對的要求在運行時保留jruby腳本,我會這樣做,然後把java代碼放到Android應用程序中。

當然,您仍然需要在您的Android應用程序中使用jruby jar文件。

請參閱https://github.com/jruby/jruby/wiki/GeneratingJavaClasses#user-content-generating-java-classes-ahead-of-time

+0

我做了一個空的類的Ruby腳本。將其轉換爲Java。如果你實例化類,它會在Android中聲明'java.lang.NoClassDefFoundError:com.company.joel.EmptyClass'。在桌面上工作正常。我不明白Android有什麼問題:我在構建路徑中有JRuby,甚至將腳本轉換爲Java類。 – Voldemort 2014-12-04 23:17:41

相關問題