标签: nailgun

使用nailgun时Scala编译服务器错误

我目前正在使用IntelliJ Idea 13.0 Build 132.197,我在构建任何Scala项目时经常遇到这个问题

6:08:42 PM Scala compile server: java.net.BindException: Address already in use: JVM_Bind
    at java.net.DualStackPlainSocketImpl.bind0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
    at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
    at java.net.ServerSocket.bind(ServerSocket.java:376)
    at java.net.ServerSocket.(ServerSocket.java:237)
    at com.martiansoftware.nailgun.NGServer.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:724)
Run Code Online (Sandbox Code Playgroud)

当我只打开一个项目,并且在任何其他进程中不使用nailgun时,会发生此错误.关闭并重新打开项目不起作用.退出IntelliJ并重新启动后,我仍然遇到相同的错误.

在Windows任务管理器中,我看到一个java.exe包含以下详细信息的进程:

E:\Dev\Java\bin\java -cp "E:/Dev/Java/lib/tools.jar;C:/Program Files (x86)/JetBrains/IntelliJ IDEA 132.197/lib/jps-server.jar;C:/Program Files (x86)/JetBrains/IntelliJ IDEA 132.197/lib/trove4j.jar;C:/Program Files (x86)/JetBrains/IntelliJ IDEA 132.197/lib/util.jar;C:/Users/hanxue/.IntelliJIdea13/config/plugins/Scala/lib/scala-library.jar;C:/Users/hanxue/.IntelliJIdea13/config/plugins/Scala/lib/scala-plugin-runners.jar;C:/Users/hanxue/.IntelliJIdea13/config/plugins/Scala/lib/jps/nailgun.jar;C:/Users/hanxue/.IntelliJIdea13/config/plugins/Scala/lib/jps/sbt-interface.jar;C:/Users/hanxue/.IntelliJIdea13/config/plugins/Scala/lib/jps/incremental-compiler.jar;C:/Users/hanxue/.IntelliJIdea13/config/plugins/Scala/lib/jps/jline.jar;C:/Users/hanxue/.IntelliJIdea13/config/plugins/Scala/lib/jps/scala-jps-plugin.jar" -Xmx1024m -server -Xss1m -XX:MaxPermSize=256m org.jetbrains.plugins.scala.nailgun.NailgunRunner 3200
Run Code Online (Sandbox Code Playgroud)

这是因为Nailgun设置的问题吗?

java scala intellij-idea nailgun

22
推荐指数
1
解决办法
4097
查看次数

Nailgun模式下JRuby 1.7上的Rails应用程序无法启动

我在RVM中安装了JRuby 1.7.2,创建了一个gemset,执行了bundle install.现在,我运行这个:

第1学期:

[lzap@lzapx my_app]$ bundle exec jruby --ng-serv
NGServer started on all interfaces, port 2113.
Run Code Online (Sandbox Code Playgroud)

第2学期:

[lzap@lzapx my_app]$ JRUBY_OPTS="--1.9 --ng" bundle exec rails s
Run Code Online (Sandbox Code Playgroud)

问题是没有任何反应,双方都没有打印任何东西,它只是永远挂起.Top没有显示任何java/jruby进程正常工作.

如果我尝试在没有-ng的情况下启动应用程序,它可以正常工作.有什么问题?捆绑?

当然禁用防火墙.

ruby-on-rails jruby nailgun

10
推荐指数
1
解决办法
849
查看次数

使用nailgun加快clojure启动时间

时不时地,我认为这将是很好用clojureshell脚本,但大约900毫秒的启动时间太慢.然后我会google startpage for"nailgun clojure",但唯一显示的结果是针对vimclojure这样的特殊情况.那时我假装没有时间,转向awk更快启动的更多病房语言.

那么,怎样才能nailgun加快clojure的启动时间呢?

shell clojure startup nailgun

9
推荐指数
1
解决办法
2097
查看次数

/ dev/tty在nailgun-server终端中打开

给定一个打开的示例脚本/dev/tty:

# sample.rb
tty=File.open("/dev/tty", "w+")
tty.print "> "
tty.puts tty.gets.upcase
Run Code Online (Sandbox Code Playgroud)

我可以用正常的jruby运行它就好了:

% jruby sample.rb
> hello
HELLO
%
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试使用/dev/ttynailgun,那么tty绑定到nailgun服务器,而不是客户端:

# server terminal                                     | # client terminal
% jruby --ng-server                                   |
NGServer 0.9.1 started on all interfaces, port 2113.  |
                                                      | % jruby --ng sample.rb
> hello                                               |
HELLO                                                 |
                                                      | %
Run Code Online (Sandbox Code Playgroud)

(垂直间距是显示时间,每个实际输出缺少空行)

这是预期的行为,还是一个错误?

如果它是预期的行为,有没有办法我可以检测脚本是否正在运行,--ng所以我可以避免打开/dev/tty

jruby tty nailgun

5
推荐指数
1
解决办法
89
查看次数

使用groovyserv或nailgun或什么改善gradle启动时间

我正在努力改善Gradle的启动时间.这种实验性--daemon开关似乎没有真正加快速度.所以我想使用一些独立于gradle的服务器进程,并使gradle连接到它.到目前为止我找到的选项是

由于gradle是由shell脚本启动的,因此需要进行一些调整.我的问题是:是否有人使用上述选项开始gradle?或者,如果您已成功使用其他选项,那是什么?

performance startup gradle nailgun

4
推荐指数
1
解决办法
1628
查看次数

如何使用Nailgun Server启动Groovy脚本(或Java类)

我正在开发一个经常启动的Groovy shell脚本(执行相当小的任务),因此我需要一个快速的JVM启动时间.为了达到这个目的,我试图用Nailgun推出它.

我已经安装了Nailgun作为Ubuntu包.然后,我固定的说法错误的链接/usr/bin/ng-server/usr/bin/ng.我正在启动Nailgun-Server,如下所示:

java -cp /usr/share/java/nailgun-0.7.1.jar -server com.martiansoftware.nailgun.NGServer
Run Code Online (Sandbox Code Playgroud)

我有一个名为hello.groovy的简单虚拟Groovy脚本,只是为了测试nailgun-server:

#!/usr/bin/env groovy
def sayHello() {
  println("Hello Groovy!");
}

sayHello();
Run Code Online (Sandbox Code Playgroud)

我用groovyc将文件编译为hello.class.

现在我想在Nailgun服务器中启动该脚本.我这样做的天真方法是:

ng hello
ng hello.sayHello
Run Code Online (Sandbox Code Playgroud)

但我得到的只是ClassNotFoundExceptions:

java.lang.ClassNotFoundException: hello
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at com.martiansoftware.nailgun.NGSession.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

那么,使用Nailgun服务器启动Groovy脚本的正确方法是什么?我也很欣赏一些关于如何使用Nailgun的好网站/教程,很难获得如何使用它的任何信息......

编辑:

我还要感谢使用带有纯Java类的nailgun的完整示例(包括如何使用ng调用特定类),因为我也无法使用任何Java类.

java groovy jvm nailgun

3
推荐指数
1
解决办法
1750
查看次数