繁体   English   中英

从Java运行Ruby命令行应用程序

[英]Run a Ruby Command Line Application from Java

我希望能够从Java运行命令行界面Ruby应用程序。 我想这样做,所以我可以在进行一些测试之前和之后启动和停止FakeS3 (轻量级的S3服务器),以便测试使用Java AWS SDK某些代码。 这些测试必须能够在我的机器上以及在Jenkins构建机器上运行

要求是:

  1. 不需要对其运行的系统进行任何更改(不允许安装应用程序,重新配置系统设置等)
  2. 平台无关

我已经尝试了几种选择,但没有成功:

  1. 使用jruby运行 -我曾尝试在项目中的各种不同脚本文件上调用evalScript,但是我总是会遇到一个异常,说找不到使用require包含的文件。 我找不到任何未包含在一个文件中的运行Ruby脚本的示例,也不知道如何告诉运行时要包含的路径
  2. 使用rubyflux进行编译-再次尝试编译多个文件,但是它生成的Java代码始终相同,并且实际上不做任何事情

有没有我可以尝试的更简单的解决方案,或者我可以做些什么使这些方法之一起作用?

我认为最好的方法是使用jruby。 您只需要配置加载路径即可。

ScriptingContainer sc = new ScriptingContainer();
sc.setLoadPaths(Arrays.asList("folder1", "folder2"));

File server = new File("server.rb");
sc.runScriptlet(new FileReader(server), server.getName());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM