java - JRuby Warbler not creating usable executable JAR files -


i've been trying jruby script simple in nature requires net::ssh perform task on remote computer , exit. when issue command jruby testssh.rb, program works flawlessly, however, when use warbler compile jar, receive errors not being able load net::ssh.

> java -version java version "1.7.0_45" java(tm) se runtime environment (build 1.7.0_45-b18) java hotspot(tm) 64-bit server vm (build 24.45-b08, mixed mode)  > pik use jruby-1.7.1  > jruby -s warble jar c:/ruby/jruby-1.7.10/lib/ruby/gems/shared/gems/rawr-1.7.0/lib/zip/zip.rb:28: use rbconfig instead of obsolete , deprecated config. rm -f test-ssh.jar creating test-ssh.jar  > java -jar test-ssh.jar loaderror: no such file load -- net/ssh   require @ org/jruby/rubykernel.java:1085   require @ file:/c:/users/user/appdata/local/temp/jruby4935218336857439685extract/jruby-stdlib-complete-1.7.11.jar!/meta-inf/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55    (root) @ test-ssh.rb:7      load @ org/jruby/rubykernel.java:1101    (root) @ file:/c:/users/user/dropbox/programming/ruby/jruby/net-ssh/test-ssh/test-ssh.jar!/meta-inf/main.rb:1   require @ org/jruby/rubykernel.java:1085    (root) @ file:/c:/users/user/appdata/local/temp/jruby4935218336857439685extract/jruby-stdlib-complete-1.7.11.jar!/meta-inf/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:1   require @ file:/c:/users/user/appdata/local/temp/jruby4935218336857439685extract/jruby-stdlib-complete-1.7.11.jar!/meta-inf/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55 error: org.jruby.embed.evalfailedexception: (loaderror) no such file load -- net/ssh 

i put files gem, , added spec.add_runtime_dependency = "net-ssh" gemspec, and:

require 'net/ssh' gem "net-ssh" 

into gemfile. when run jruby -s warble, different error. noticed, bundler, , ruby didn't play '-' in name, had recreate file again.

> jruby -s warble c:/ruby/jruby-1.7.10/lib/ruby/gems/shared/gems/rawr-1.7.0/lib/zip/zip.rb:28: use rbconfig instead of obsolete , deprecated config. no default executable found in test-ssh.gemspec, using bin/test-ssh.rb rm -f test-ssh.jar creating test-ssh.jar  > java -jar testssh.jar loaderror: no such file load -- testssh/bin/testssh.rb      load @ org/jruby/rubykernel.java:1101    (root) @ file:/c:/users/user/dropbox/programming/ruby/jruby/net-ssh/testssh/testssh.jar!/meta-inf/main.rb:1   require @ org/jruby/rubykernel.java:1085    (root) @ file:/c:/users/user/appdata/local/temp/jruby6762643836642223701extract/jruby-stdlib-complete-1.7.11.jar!/meta-inf/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:1   require @ file:/c:/users/user/appdata/local/temp/jruby6762643836642223701extract/jruby-stdlib-complete-1.7.11.jar!/meta-inf/jruby.home/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55 error: org.jruby.embed.evalfailedexception: (loaderror) no such file load -- testssh/bin/testssh.rb 

i'm @ loss needs done, , i've found lot of half-baked answers questions similar this, or people have left bugs on warbler github page more year no answers.

the gist code , errors located here: https://gist.github.com/predatorian3/10191754


the solution was:

the way bundler creates ruby gems utilizes git, , wasn't using git add . include changed directories. once did git add . , git commit, warbler picked directories missing first go around. gem dependency, simple editing .gemspec file, , including runtime_dependency each gem had required own gem. after that, warbler included dependencies, , jar file can run without jruby installed.

it needs file can run when run jar! can specify 1 in gemspec, default bin/.rb. no such file exists, error.


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -