19 votos

Crear desplegables JRuby archivo JAR?

Necesito compilar mi JRuby aplicación en una independiente de los archivos JAR. ¿Cómo puedo hacer esto?

20voto

The Doctor What Puntos 4454

Curruca 1.3.0 o posterior, también puede ser utilizado para crear un archivo JAR ejecutable.

Instrucciones rápidas. Asegúrese de que está utilizando JRuby del gem, etc. aquí:

$ gem install warbler
$ mkdir bin
$ cat <<EOF > bin/myapp
#!/usr/bin/env jruby

puts "Hello World"

EOF
$ chmod a+x bin/myapp
$ warble jar

Ahora debe tener un myapp.jar archivo en el directorio actual. De acuerdo a la README que acaba de agregar cualquiera de las librerías que necesita en la lib directorio y el uso de cualquiera de ellos (o ambos) .gemspec o Gemfile para el control de cualquiera de las otras joyas que deben ser puestas en la .jar archivo.

4voto

clyfe Puntos 15388

Echa un vistazo rawr. Es una joya que los paquetes de la aplicación en un archivo JAR.

Si desea compilar el código fuente de protección debe producir un .class archivo para cada secuencia de comandos en su proyecto (como se describe aquí) y, a continuación, reemplace el contenido de la secuencia de comandos original con

require 'the_corresponding_class_file'

para cada una de las secuencias de comandos compiladas.

2voto

James Moore Puntos 3293

JRuby 1.6 mejora de este. Ahora hay una sección de la wiki - StandaloneJarsAndClasses - que habla acerca de cómo utilizar jrubyc a generar .los archivos de clase de autónomos y de los frascos.

Con el nuevo compilador, usted puede construir .los archivos de clase como en este ejemplo de la wiki:

james@gealach:/tmp/fnx$ cat my_foo.rb 
la clase Foo
 def bar(a, b)
 pone a + b
final
final
james@gealach:/tmp/fnx$ ~/jruby/bin/jrubyc --javac my_foo.rb 
La generación de Java de la clase Foo C:/cygwin/tmp/fnx/Foo.java
javac -d C:/cygwin/tmp/fnx -cp C:/cygwin/home/james/jruby/lib/jruby.jar;. C:/cygwin/tmp/fnx/Foo.java
james@gealach:/tmp/fnx$ ls
Foo.class Foo.java my_foo.rb
james@gealach:/tmp/fnx$ javap.exe Foo
Compilado de "Foo.java"
public class Foo extiende org.jruby.RubyObject{
 public static org.jruby.en tiempo de ejecución.builtin.IRubyObject __asignar__(org.jruby.Ruby, org.jruby.RubyClass);
 público Foo();
 public java.lang.La barra de objetos(java.lang.Objeto java.lang.Objeto);
 static {};
}

Y usted puede ajustar el punto de entrada para un frasco para org.jruby.JarBootstrapMain y agregar un frasco-bootstrap.rb archivo.

1voto

jabbie Puntos 691

Simplemente ejecutar una secuencia de comandos:

JRuby sitio tiene un archivo JAR ejecutable que se puede obtener en la JRuby página de descarga. Desea que el JRuby completa de los archivos JAR. A continuación, puede ejecutar la aplicación haciendo

java -jar jruby-complete-1.4.0.jar <script>

Creo que también se puede construir el mismo archivo JAR de la fuente. En la fuente descargado ¿

ant --projecthelp

Para insertar un script en Ruby completamente en un archivo JAR: Incrustación de JRuby en Java es un buen punto de partida. Usted probablemente querrá unjar la jruby-complete.jar archivo, añadir la versión de Java de la clase principal que tiene la una llamada a un JRuby script o tiene el código Ruby embebido en él, reemplace el manifiesto de la clase principal a punto para su nuevo punto de entrada, y la jarra de nuevo.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X