Ich muss meine JRuby-Anwendung in eine eigenständige JAR-Datei kompilieren. Wie kann ich das machen?Erstellbare JRuby JAR-Datei erstellen?
Antwort
So führen Sie nur ein Skript:
Die JRuby Seite hat eine runnable JAR-Datei, die Sie am JRuby download page zu bekommen. Sie möchten die vollständige JAR-Datei von JRuby. Sie können dann Ihre Anwendung ausführen,
Ich glaube, Sie können auch die gleiche JAR-Datei aus der Quelle erstellen. In der heruntergeladenen Quelle tut
ant --projecthelp
Um einen Ruby-Skript vollständig in eine JAR-Datei einbetten: Embedding JRuby in Java ist ein guter Ausgangspunkt. Wahrscheinlich möchten Sie die jruby-complete.jar
Datei aufheben, Ihre Java-Hauptklasse hinzufügen, die entweder ein Callout zu einem JRuby-Skript hat oder den Ruby-Code darin eingebettet hat, die Hauptklasse des Manifests auf Ihren neuen Einstiegspunkt setzen und jar sichern.
Auschecken rawr. Es ist ein Juwel, das Ihre Anwendung in einer JAR-Datei verpackt.
Wenn Sie möchten, für Quellcode-Schutz kompilieren Sie eine .class
-Datei für jedes Skript in Ihrem Projekt produzieren müssen (wie here beschrieben) und dann den Inhalt des Original-Skript ersetzen mit
require 'the_corresponding_class_file'
für jeden die kompilierten Skripte.
JRuby 1.6 hat dies verbessert. Es gibt jetzt einen Abschnitt des Wikis - StandaloneJarsAndClasses - der darüber spricht, wie man jrubyc benutzt, um .class-Dateien und Standalone-Jars zu erzeugen.
Mit dem neuen Compiler, Sie Dateien wie in diesem Beispiel aus dem Wiki bauen .class- können:
[email protected]:/tmp/fnx$ cat my_foo.rb class Foo def bar(a, b) puts a + b end end [email protected]:/tmp/fnx$ ~/jruby/bin/jrubyc --javac my_foo.rb Generating Java class Foo to 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 [email protected]:/tmp/fnx$ ls Foo.class Foo.java my_foo.rb [email protected]:/tmp/fnx$ javap.exe Foo Compiled from "Foo.java" public class Foo extends org.jruby.RubyObject{ public static org.jruby.runtime.builtin.IRubyObject __allocate__(org.jruby.Ruby, org.jruby.RubyClass); public Foo(); public java.lang.Object bar(java.lang.Object, java.lang.Object); static {}; }
Und Sie den Einstiegspunkt für ein Glas zu org.jruby.JarBootstrapMain setzen und ein Glas-Bootstrap hinzufügen .rb-Datei.
Warbler 1.3.0 oder neuer kann auch verwendet werden, um eine ausführbare JAR-Datei zu erstellen.
Kurzanleitung. Stellen Sie sicher, dass Sie JRuby`s Juwel verwenden, usw. hier:
$ gem install warbler
$ mkdir bin
$ cat <<EOF > bin/myapp
#!/usr/bin/env jruby
puts "Hello World"
EOF
$ chmod a+x bin/myapp
$ warble jar
Sie jetzt eine myapp.jar
Datei im aktuellen Verzeichnis haben sollte. Entsprechend der README
fügen Sie einfach irgendwelche Bibliotheken hinzu, die Sie im Verzeichnis lib
benötigen, und verwenden Sie entweder (oder beide) .gemspec
oder Gemfile
, um irgendwelche anderen Edelsteine zu steuern, die in die .jar
Akte gebracht werden müssen.
- 1. Erstellen Sie ein eigenständiges Glas mit JRuby
- 2. jruby auf tomcat - RackInitializationException
- 3. GAE und JRuby HTTP-Verbindungen
- 4. JRuby in RubyMine arbeiten
- 5. Jython oder JRuby?
- 6. JRuby/Rack Deployment
- 7. Sbt plugin für jruby
- 8. Casting-Objekte in JRuby
- 9. JRuby und Java-Objekte
- 10. Büroklammer mit JRuby
- 11. JRuby: Hintergrundjobverarbeitung über Sidekiq
- 12. curb (curl) für jruby?
- 13. HBase über JRuby Vorschläge?
- 14. Nebenläufigkeit in JRuby
- 15. JRuby OpenSSL Fehler
- 16. JRuby, Rails und FeedTool
- 17. Java Array in Jruby
- 18. Debugging in JRuby 9000
- 19. jruby on rails Planungsoptionen
- 20. Apache mit JRuby
- 21. JRuby on Rails ohne Datenbank
- 22. Jruby "RuntimeHelpers" -Klasse ist veraltet
- 23. Wie Oracle mit JRuby & JDBC
- 24. Installieren von Hprikot für JRuby
- 25. Wie profile ich JRuby-Code?
- 26. Bereits konstant in jruby-openssl
- 27. JRuby gemspec lokale jar Abhängigkeiten
- 28. warbler config und jruby version
- 29. JRuby on Rails-Anwendung implementieren
- 30. 'require' gem Fehler in JRuby
Diese Frage könnte helfen: http://stackoverflow.com/questions/1921475/compile-jruby-hello-world-problem – atomicules
Diese Frage hat mit der Kompilierung und Ausführung der (J) Ruby-Skript nur und nicht mit Jar zu tun packen (bereitstellen). –