我编写了Java SE程序,它处理了非常庞大的矩阵数据集(10 ^ 12矩阵)。我通过迭代器生成它们并将特殊的(满足某些条件)保存到Java堆或数据库。所以,我知道它需要花费很多时间(可能是几天)。为了操作所有这些东西,我决定在不在我公寓的电脑上运行该程序,并且可以访问互联网。我想控制程序的runnig进程(对我来说非常重要的是知道程序的一切正常吗?程序是否还在运行?)
我的问题是如何控制我的程序仍在运行(为此我想在我的公寓和互联网上使用计算机)?
也许我的程序应该定期发布(通过Java IO API)消息到网站(Google Docs等)。提前感谢您的所有回复。
答案 0 :(得分:2)
在启用JPDA
的情况下运行您的应用程序。这样你就可以远程连接它,检查线程等等。
JPDA
还有许多其他优点,例如热代码替换。
Specification for JPDA在这里,最重要的是你必须在启动时传递一些JVM选项,它将打开一个端口,你可以使用Eclipse或NetBeans从网上的任何地方附加它。您必须确保可以通过防火墙(本地和网络)访问打开的端口。
答案 1 :(得分:1)
首先,您应该尝试远程桌面连接。 Here's link to MS documents for Windows 7 remote desktop
如果远程计算机是Linux / Unix,并且您的程序是控制台应用程序,ssh+screen是旧的,真实且经过测试的解决方案,可以让交互式控制台程序在任何地方运行和访问,同时您在现实世界中嬉戏
答案 2 :(得分:1)
我会选择VisualVM&远程JMX。设置服务器框以允许远程jmx连接。使用VisualVM,您将能够连接到JVM并检查活动。
您还可以设置MBean以保留正在运行的进程的统计信息。您还可以使用VisualVM进行检查。