我正在尝试将visualvm连接到我的java应用程序,该应用程序是使用jetty和gradle构建的。该应用程序在本地主机上运行,因此不需要远程连接。但是,每当我尝试连接到应用程序时,我只是连接到 gradle 包装器,因此无法使用 visualvm 分析我的应用程序。在这里搜索和谷歌搜索不足。
到目前为止,我已经尝试将以下行添加到我的 gradle.build 文件中
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=localhost')
Run Code Online (Sandbox Code Playgroud)
我还尝试从 jetty-jmx.xml 中取消注释以下内容
<Call name="createRegistry" class="java.rmi.registry.LocateRegistry">
<Arg type="java.lang.Integer"><SystemProperty name="jetty.jmxrmiport" default="1099"/></Arg>
<Call name="sleep" class="java.lang.Thread">
<Arg type="java.lang.Integer">1000</Arg>
</Call>
Run Code Online (Sandbox Code Playgroud)
<New id="ConnectorServer" class="org.eclipse.jetty.jmx.ConnectorServer">
<Arg>
<New class="javax.management.remote.JMXServiceURL">
<Arg type="java.lang.String">rmi</Arg>
<Arg type="java.lang.String" />
<Arg type="java.lang.Integer"><SystemProperty name="jetty.jmxrmiport" default="1099"/></Arg>
<Arg type="java.lang.String">/jndi/rmi://<SystemProperty name="jetty.jmxrmihost" default="localhost"/>:<SystemProperty name="jetty.jmxrmiport"default="1099"/>/jmxrmi</Arg>
</New>
</Arg>
<Arg>org.eclipse.jetty.jmx:name=rmiconnectorserver</Arg>
<Call name="start" />
Run Code Online (Sandbox Code Playgroud)
我有一个可以在Linux和Mac OS X上运行的bash脚本。脚本的某一行与Linux中的一样,但在OS X中不起作用。
nohup <utility> <arg> > output.txt 2> error.txt </dev/null &
Run Code Online (Sandbox Code Playgroud)
当bash脚本在Linux中运行时,它就像一个超级按钮。但是,在OS X中运行bash脚本时,出现错误
nohup: can't detach from console: Inappropriate ioctl for device
Run Code Online (Sandbox Code Playgroud)
我已经做了很多搜索,但是还没有找到合适的答案来说明为什么这样。
正在执行的脚本早于退出<utility>,这就是为什么(据我所知)我需要使用的原因nohup。但是,我已经进行了一些测试,nohup从bash脚本的行中删除似乎可以解决问题,因为这两个系统上的实用程序都将启动,并且即使脚本退出后仍可以继续运行。
我有一堆Mac刚刚更新了Xcode,需要接受EULA协议.我试图通过脚本来做到这一点.
#!/usr/bin/expect
set timeout 15
spawn sudo xcodebuild -license
expect {
"*License.rtf'\n" { # Press Enter to view agreement
send "\r"
}
timeout {
send_user "\nFailed\n";
exit 1
}
}
expect {
"Software License Agreements Press 'space' for more, or 'q' for quit" {
send_user " ";
exp_continue;
}
"By typing 'agree' you are agreeing" {
send_user "agree\r"
}
timeout {
send_user "\nTimeout 2\n";
exit 1
}
}
Run Code Online (Sandbox Code Playgroud)
但是,它永远不会超过第一个期望(也就是说,它永远不会为'Enter'发送"\ r".这是输出:
$ ./test.sh
spawn sudo xcodebuild -license
You have not agreed …Run Code Online (Sandbox Code Playgroud)