2009-07-23 31 views
7

Tôi muốn có thể biên dịch chương trình Ruby sang chương trình Java JAR. Tôi đã xem xét JRuby và thấy một số ví dụ về các ứng dụng Java có thể eval() mã ruby, nhưng có một giải pháp thanh lịch hơn cho phép đơn giản mã hóa mọi thứ trong ruby ​​và sau đó biên dịch trực tiếp nhiều tệp JAR?Mã Ruby để JAR

Mục tiêu tổng thể đằng sau đó là có thể mở rộng một công cụ bảo mật có tên là Burp Proxy. Vì vậy, tôi muốn có thể sử dụng tất cả các kịch bản lệnh pentesting của Ruby (rõ ràng là sắp xếp chúng để chúng giao tiếp với bộ mở rộng Burp) và biên dịch các plugin của tôi thành tệp JAR có thể được thực thi bởi công cụ.

Nếu bạn có thể bao gồm một số ví dụ hoặc liên kết đến các ví dụ trong câu trả lời thậm chí sẽ tốt hơn!

Cảm ơn thời gian của bạn.

Trả lời

8

JRuby cho phép bạn biên dịch thành các tệp .class mà bạn có thể bình thường. Bạn cũng sẽ phải bao gồm jruby.jar. Từ here:

Cách điển hình để chạy trình biên dịch AOT là chạy

jrubyc <script name>

Hoặc, trên Microsoft Windows: kết quả đầu ra

jruby -S jrubyc <script name>

Lệnh này a. tệp lớp học trong thư mục hiện tại với cha mẹ thư mục và gói phù hợp trong đó tệp tồn tại. Vì vậy, sau lệnh

jrubyc foo/bar/test.rb

chí đầu ra

foo/bar/test.class

Để chạy các tập tin được tạo ra bởi trình biên dịch , sử dụng -cp (lớp searchpath) tham số với cả hiện tại thư mục (thư mục mẹ cho foo/bar/test.class ở trên) và đường dẫn tới jruby.jar và thực hiện nó như bạn sẽ một lớp Java bình thường tên là foo.bar.test:

java -cp .:/path/to/jruby.jar foo.bar.test

+0

tuyệt vời! cảm ơn câu trả lời của bạn. – Benjamin

Các vấn đề liên quan