Public bug reported:
Hi,
Ubuntu 16.04.1 LTS
jruby=1.7.22-1ubuntu1
nailgun=0.9.1-3
I'm trying to run a ruby script using nailgun:
$ cat x.rb
#!/usr/bin/jruby
puts "Hello, world!"
$
$ jruby --ng-server &
[1] 5600
$ NGServer 0.9.1 started on all interfaces, port 2113.
$ jruby --ng x.rb
java.lang.ClassNotFoundException: ng
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.martiansoftware.nailgun.NGSession.run(NGSession.java:242)
This is due to the fact that nailgun checks its program name, and cannot be
started as "ng" (the symlink in jruby package is named "ng"), only as
"ng-nailgun":
$ ls -la /usr/share/jruby/tool/nailgun/ng
lrwxrwxrwx 1 root root 26 Oct 23 2015 /usr/share/jruby/tool/nailgun/ng ->
../../../../bin/ng-nailgun
$ cd /usr/bin/
$ sudo ln -s ng-nailgun ng
$ ng
java.lang.ClassNotFoundException: ng
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.martiansoftware.nailgun.NGSession.run(NGSession.java:242)
$ ng-nailgun
NailGun v0.9.0
<...>
I don't know if this bug should be addressed to nailgun package or jruby
package.
There was a similar bug in nailgun:
https://bugs.launchpad.net/ubuntu/+source/nailgun/+bug/793859
So, there are two options:
1. If it's considered as a bug in nailgun package, then you need to make
nailgun able to run without checking the program name.
2. If it's a jruby package bug, then the following actions helped me:
i) Rename symlink to ng-nailgun:
$ cd /usr/share/jruby/tool/nailgun/
$ sudo mv ng ng-nailgun
ii) Using new symlink in jruby exec script:
$ cd
$ diff jruby.fixed_nailgun /usr/share/jruby/bin/jruby
335,336c335,336
< if [ -f $JRUBY_HOME/tool/nailgun/ng-nailgun ]; then
< exec $JRUBY_HOME/tool/nailgun/ng-nailgun org.jruby.util.NailMain $mode
"$@"
---
> if [ -f $JRUBY_HOME/tool/nailgun/ng ]; then
> exec $JRUBY_HOME/tool/nailgun/ng org.jruby.util.NailMain $mode "$@"
338c338
< echo "error: ng-nailgun executable not found; run 'make' in
${JRUBY_HOME}/tool/nailgun"
---
> echo "error: ng executable not found; run 'make' in
> ${JRUBY_HOME}/tool/nailgun"
$ sudo cp jruby.fixed_nailgun /usr/share/jruby/bin/jruby
$ jruby --ng x.rb
Hello, world!
$
** Affects: jruby (Ubuntu)
Importance: Undecided
Status: New
** Package changed: tomcat7 (Ubuntu) => jruby (Ubuntu)
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1676386
Title:
jruby fails to run with nailgun support
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/jruby/+bug/1676386/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs