2009-07-23 3 views
7

Ich würde gerne in der Lage sein, ein Ruby-Programm zu einem Java-JAR-Programm zu kompilieren. Ich habe in JRuby nachgeschaut und einige Beispiele für Java-Anwendungen gesehen, die in der Lage wären, Ruby-Code zu evaluieren. Gibt es aber eine elegantere Lösung, die es einfach erlaubt, alles in Ruby zu codieren und dann das Los direkt in eine JAR-Datei zu kompilieren?Ruby-Code zu JAR

Das übergeordnete Ziel ist es, ein Sicherheits-Tool namens Burp Proxy erweitern zu können. Daher würde ich gerne alle meine Ruby Pentesting Scripts verwenden können (offensichtlich organisiere ich sie so, dass sie mit dem Burp Extender verbunden sind) und meine Plugins in eine JAR Datei kompilieren, die vom Tool ausgeführt werden kann.

Wenn Sie Beispiele oder Links zu Beispielen in Ihrer Antwort einfügen könnten, die sogar noch besser wären!

Danke für Ihre Zeit.

Antwort

8

JRuby ermöglicht es Ihnen, zu .class-Dateien zu kompilieren, die Sie normalerweise aufheben können. Sie müssen nur jruby.jar auch einschließen. Von here:

Der typische Weg, um die AOT Compiler laufen ist

jrubyc <script name>

Oder auf Microsoft Windows ausgeführt wird:

ein

jruby -S jrubyc <script name>

Dieser Befehl gibt. Klassendatei in das aktuelle Verzeichnis mit übergeordneten Verzeichnisse und Paketabgleich, wobei die Datei lebt. Also folgendes Befehl

jrubyc foo/bar/test.rb

ausgeben wird

foo/bar/test.class

die Datei vom Compiler erzeugt auszuführen, verwenden Sie die -cp (Klasse searchpath) Parameter sowohl mit dem Strom Verzeichnis (übergeordnetes Verzeichnis für foo/bar/test.class oben) und Pfad zu jruby.jar, und führen Sie es als Sie würde eine normale Java-Klasse namens foo.bar.test:

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

+0

ausgezeichnet! Danke für deine Antwort. – Benjamin