2014-12-04 105 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

相关问题