我真的被这个错误搞糊涂了。我不确定进程使用的是Java。做kill -9 <pid>也没什么用。我尝试过重新安装jruby。我被难住了。
[phoenix (master)]$ rvm use jruby
Using /Users/jess/.rvm/gems/jruby-9.0.0.0
[phoenix (master)]$ java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:382)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at java.net.ServerSocket.<init>(ServerSocket.java:128)
at com.martiansoftware.nailgun.NGServer.run(NGServer.java:411)
at java.lang.Thread.run(Thread.java:745)
[phoenix (master)]$ ps aux | grep java
jess 1197 0.0 0.4 4391504 29456 s000 S 2:01PM 0:00.95 /usr/bin/java -Xmx500m -Xss2048k -Djffi.boot.library.path=/Users/jess/.rvm/rubies/jruby-9.0.0.0/lib/jni -Dfile.encoding=UTF-8 -classpath /Users/jess/.rvm/rubies/jruby-9.0.0.0/lib/jruby.jar:/Users/jess/.rvm/rubies/jruby-9.0.0.0/lib/jruby-truffle.jar:/Users/jess/.rvm/rubies/jruby-9.0.0.0/lib/jruby-truffle.jar: -Djruby.home=/Users/jess/.rvm/rubies/jruby-9.0.0.0 -Djruby.lib=/Users/jess/.rvm/rubies/jruby-9.0.0.0/lib -Djruby.script=jruby -Djruby.shell=/bin/sh org.jruby.main.NailServerMain
jess 5365 0.0 0.0 2432772 648 s000 S+ 2:15PM 0:00.00 grep java在终止与java和jruby相关的进程后,我也经常收到这个错误。
error: ng executable not found; run 'make' in /Users/jess/.rvm/rubies/jruby-9.0.0.0/tool/nailgun更新
我需要更改这个文件吗?如果需要,如何更改?
[phoenix (master)]$ cat ~/.rvm/hooks/after_use_jruby
#!/usr/bin/env bash
\. "${rvm_path}/scripts/functions/hooks/jruby"
if [[ "${rvm_ruby_string}" =~ "jruby" ]]
then
jruby_ngserver_start
jruby_options_append "--ng" "${PROJECT_JRUBY_OPTS[@]}"
else
jruby_options_remove "--ng" "${PROJECT_JRUBY_OPTS[@]}"
jruby_clean_project_options
fi发布于 2015-08-11 19:50:34
首先,JRuby当然使用Java,因为它是Ruby的Ruby实现。
在您的情况下,您似乎是在启用Nailgun的情况下启动JRuby。钉枪是一个围绕Java的Ruby包装器,它加速了Java JVM的启动--另请参阅https://github.com/jruby/jruby/wiki/Improving-startup-time。Nailgun启动一个服务器,该服务器默认在端口2113上进行侦听。我猜这就是问题所在。也许另一个进程正在使用这个端口?
RVM实际上会尝试在rvm use jruby之后自动启动Nailgun服务器。参见~/.rvm/hooks/after_use_jruby。您可以删除或更改此脚本,以避免使用钉枪。
https://stackoverflow.com/questions/31927455
复制相似问题