Tôi cần biên dịch ứng dụng JRuby của mình thành một tệp JAR độc lập. Tôi có thể làm cái này như thế nào?Tạo tệp JRuby JAR có thể triển khai?
Trả lời
Để chỉ cần chạy một kịch bản:
Các trang web JRuby có một tập tin JAR Runnable mà bạn có thể có được ở các JRuby download page. Bạn muốn tập tin JAR hoàn chỉnh JRuby. Sau đó, bạn có thể chạy ứng dụng của mình bằng cách thực hiện
java -jar jruby-complete-1.4.0.jar <script>
Tôi tin rằng bạn cũng có thể xây dựng cùng một tệp JAR từ nguồn. Trong nguồn được tải xuống làm
ant --projecthelp
Để nhúng tập lệnh Ruby hoàn toàn vào tệp JAR: Embedding JRuby in Java là điểm khởi đầu tốt. Bạn có thể muốn mở tệp jruby-complete.jar
, thêm lớp Java chính của bạn hoặc có chú thích cho tập lệnh JRuby hoặc có mã Ruby được nhúng trong đó, thay thế lớp chính của tệp kê khai để trỏ đến điểm nhập mới của bạn và bỏ nó sao lưu.
Khám phá rawr. Nó là một viên ngọc mà gói ứng dụng của bạn trong một tệp JAR.
Nếu bạn muốn biên dịch để bảo vệ mã nguồn, bạn phải tạo ra một tập tin .class
cho mỗi kịch bản trong dự án của bạn (như mô tả here) và sau đó thay thế nội dung của kịch bản ban đầu với
require 'the_corresponding_class_file'
cho mỗi các tập lệnh được biên dịch.
JRuby 1.6 cải thiện điều này. Bây giờ có một phần của wiki - StandaloneJarsAndClasses - mà nói về cách sử dụng jrubyc để tạo các tệp .class và các jars độc lập.
Với trình biên dịch mới, bạn có thể xây dựng .class file như ví dụ này từ wiki:
[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 james[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 {}; }
Và bạn có thể thiết lập các entrypoint cho một lọ để org.jruby.JarBootstrapMain và thêm một jar-bootstrap .rb.
Warbler 1.3.0 hoặc mới hơn cũng có thể được sử dụng để tạo tệp JAR có thể thực thi.
Hướng dẫn nhanh. Hãy chắc chắn rằng bạn đang sử dụng đá quý của JRuby, v.v. ở đây:
$ gem install warbler
$ mkdir bin
$ cat <<EOF > bin/myapp
#!/usr/bin/env jruby
puts "Hello World"
EOF
$ chmod a+x bin/myapp
$ warble jar
Bây giờ bạn sẽ có một tệp myapp.jar
trong thư mục hiện tại. Theo số README
, bạn chỉ cần thêm bất kỳ thư viện nào bạn cần vào thư mục lib
và sử dụng (hoặc cả hai) .gemspec
hoặc Gemfile
để kiểm soát bất kỳ loại đá quý nào khác cần được đưa vào tệp .jar
.
- 1. maven triển khai tệp jar bổ sung
- 2. Vấn đề triển khai JBoss - Không thể triển khai Jar
- 3. Triển khai tệp .jar: Tại sao tôi không thể tải các tệp biểu tượng?
- 4. Cách tạo tệp .jar có thể thực thi với netbeans
- 5. maven: triển khai tên tệp phần mềm tạo tác
- 6. Làm thế nào tôi có thể sử dụng gem-in-a-jar với JRuby nhúng?
- 7. Triển khaiKhông triển khai tệp
- 8. Triển khai các tệp Java
- 9. Maven triển khai không tải lên jar thử nghiệm
- 10. Tôi có thể nhập các tệp lớp Java vào JRuby không?
- 11. Android - cách tránh nhiều triển khai giống nhau .jar
- 12. Có thể getResourceAsStream() tìm tệp bên ngoài tệp jar không?
- 13. Sử dụng REST API của Artifactory để triển khai tệp jar
- 14. Tạo tệp jar trong Android
- 15. Tạo tệp jar từ tệp Scala
- 16. Triển khai Play! ứng dụng như jar thực thi
- 17. Maven triển khai jar với phụ thuộc để repo
- 18. Làm thế nào để triển khai JRuby Rails 3.1.x trên Heroku
- 19. Tự động tạo tệp kê khai bằng Eclipse cho tệp JAR
- 20. Cách tốt nhất để triển khai ứng dụng JRuby on Rails cho Tomcat là gì?
- 21. Sử dụng JRuby Warbler, có thể tạo ra một WAR có thể học RAILS_ENV từ biến môi trường không?
- 22. Haskell có thể triển khai OSGi không?
- 23. Tại sao jar bỏ qua tệp kê khai của tôi?
- 24. Cách tạo tệp Jar trong Netbeans
- 25. Tệp .deploy không triển khai tệp XML
- 26. Tạo tệp jar thực thi từ dự án clojure?
- 27. Ẩn các lớp công khai trong JAR
- 28. Bạn có thể thêm nhiều lọ vào một tệp jar và sau đó khởi chạy tệp jar đó
- 29. JavaMe triển khai
- 30. Không thể triển khai đúng tệp WAR do Eclipse tạo ra cho Tomcat
Câu hỏi này có thể giúp: http://stackoverflow.com/questions/1921475/compile-jruby-hello-world-problem – atomicules
Câu hỏi đó liên quan đến việc biên dịch và thực thi tập lệnh Ruby (J) mà không phải với Jar đóng gói (triển khai). –