簡體   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