我的环境
- 开发者 PC:Windows 8,JDK1.6 中的 VisualVM
- 服务器:Ubuntu,JDK1.6,玩1.2.2
要连接到本地 Play 应用程序,唯一的选项“-Dcom.sun.management.jmxremote”就可以了。
但是要连接到远程 Play 应用程序,JVM 需要更多选项。
由于设置_JAVA_OPTIONS环境会影响所有Java程序,所以我更改了播放启动脚本:framework/pym/play/application.py
def java_cmd(self, java_args, cp_args=None, className='play.server.Server', args = None):
...
java_args.append('-Dcom.sun.management.jmxremote')
java_args.append('-Dcom.sun.management.jmxremote.port=5678')
java_args.append('-Dcom.sun.management.jmxremote.ssl=false')
java_args.append('-Dcom.sun.management.jmxremote.authenticate=false')
java_args.append('-Dcom.sun.management.jmxremote.local.only=false')
java_args.append('-Djava.rmi.server.hostname=192.168.0.10')
java_cmd = [self.java_path(), '-javaagent:%s' % self.agent_path()] + java_args + ['-classpath', cp_args, '-Dapplication.path=%s' % self.path, '-Dplay.id=%s' % self.play_env["id"], className] + args
return java_cmd
然后重新启动 Play 应用程序,并从 VisualVM 重新连接它。