2009-07-23 12 views
7

Mi piacerebbe essere in grado di compilare un programma ruby ​​in un programma JAR java. Ho esaminato JRuby e ho visto diversi esempi di applicazioni Java che sarebbero in grado di eval() ruby ​​code, ma esiste una soluzione più elegante che consente di codificare semplicemente tutto in ruby ​​e quindi compilare il lotto direttamente in un file JAR?Ruby code to JAR

L'obiettivo generale dietro è quello di essere in grado di estendere uno strumento di sicurezza chiamato Burp Proxy. Quindi mi piacerebbe essere in grado di usare tutti i miei script di pentesting di Ruby (ovviamente organizzandoli in modo che si interfacciano con Burp extender) e compili i miei plugin in file JAR che possono essere eseguiti dallo strumento.

Se potessi includere alcuni esempi o collegamenti ad esempi nella tua risposta, sarebbe anche meglio!

Grazie per il vostro tempo.

risposta

8

JRuby consente di compilare file .class, che è possibile utilizzare normalmente. Devi anche includere jruby.jar. Da here:

Il modo tipico per eseguire il compilatore AOT è quello di eseguire

jrubyc <script name>

Oppure, su Microsoft Windows: uscite

jruby -S jrubyc <script name>

Questo comando a. file di classe in la directory corrente con il genitoreDirectorye corrispondenza dei pacchetti in cui il file vive . Così il seguente comando

jrubyc foo/bar/test.rb

uscita volontà

foo/bar/test.class

Per eseguire il file prodotto dal compilatore , utilizzare la -cp (classe SearchPath) parametro sia con l'attuale directory (directory principale per foo/bar/test.class sopra) e il percorso in jruby.jar ed eseguirlo come si farebbe con un normale classe Java di nome foo.bar.test:

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

+0

eccellente! grazie per la tua risposta. – Benjamin