3

我编写了 Java SE 程序,它处理了非常庞大的矩阵数据集(10^12 个矩阵)。我通过迭代器生成它们并将特殊的(满足某些标准)保存到 Java 堆或数据库中。所以,我知道这需要很长时间(可能需要几天)。为了使用所有这些东西,我决定在不在我公寓的计算机上运行该程序,并且可以访问互联网。我想控制程序的运行过程(对我来说很重要的是要知道程序一切正常吗?程序还在运行吗?)

我的问题是如何控制我的程序仍在运行(为此我想在我的公寓和互联网上使用计算机)?

也许我的程序应该定期(通过 Java IO API)向网站(Google Docs 等)发布消息。提前感谢您的所有回复。

4

3 回答 3

2

JPDA在启用的情况下运行您的应用程序。通过这种方式,您可以远程连接它、检查线程等。

JPDA还有许多其他优点,例如热代码替换。

JPDA 的规范在这里,最重要的是您必须在启动时传递一些 JVM 选项,它将打开一个端口,您可以使用 Eclipse 或 NetBeans 从网络上的任何地方附加它。您必须确保打开的端口可以通过防火墙(本地和网络)访问。

于 2013-03-23T11:39:09.613 回答
1

首先,您应该尝试远程桌面连接。这是 Windows 7 远程桌面的 MS 文档的链接

如果远程计算机是 Linux/Unix,而您的程序是控制台应用程序,那么ssh+screen是旧的、真实且经过测试的解决方案,可以让交互式控制台程序运行并从任何地方访问,同时您在现实世界中嬉戏。

于 2013-03-23T11:36:19.277 回答
1

我会选择 VisualVM 和远程 JMX。设置服务器框以允许远程 jmx 连接。使用 VisualVM,您将能够连接到 JVM 并检查活动。

您还可以设置 MBean 以保留正在运行的进程的统计信息。您还可以使用 VisualVM 进行检查。

于 2013-03-23T11:55:51.673 回答