2013-03-23 91 views
3

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

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

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

+0

SSH呢? – w4etwetewtwet 2013-03-23 12:02:38

+0

SSH我什至不知道它是什么?你能提供更多的信息吗? – 2013-03-23 12:08:02

+0

这是一种在远程计算机上获取终端shell访问的方法,我建议你google一下。使用它可以使用命令行进程管理工具与您的程序进行通信。 – w4etwetewtwet 2013-03-23 12:09:51

回答

2

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

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

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

+0

谢谢@GaborSch我会探索它。 – 2013-03-23 11:53:29

+0

如果你有两台机器之间的低带宽,这将不能有效地工作,虽然。 – gaborsch 2013-03-23 11:59:35

+0

谢谢@GaborSch。我认为这没有问题。 – 2013-03-23 12:23:12

1

首先,您应该尝试远程桌面连接。 Here's link to MS documents for Windows 7 remote desktop

如果远程计算机的Linux/Unix,和你的程序是控制台应用程序,ssh+screen是旧的,真实和测试的解决方案,以保持运行,并从任何地方访问交互式控制台程序,当你在现实世界中嬉戏。

+0

谢谢。不幸的是,我在Windows 7上。 – 2013-03-23 11:52:45

+0

因此,您无法在远程Win7计算机上启用远程桌面? – hyde 2013-03-23 11:54:01

+0

说实话我从来没有这样做,我会definetly尝试这样做。谢谢。 – 2013-03-23 12:00:08

1

我会去VisualVM &远程JMX。设置服务器框以允许远程jmx连接。使用VisualVM,您可以连接到JVM并检查活动。

您还可以设置MBean以保留运行进程的统计信息。你也可以用VisualVM查看。

+0

谢谢你,我会谷歌所有的建议! – 2013-03-23 12:04:10

+0

这个添加到服务器的过程:-Dcom.sun.management.jmxremote.port = 1234 -Dcom.sun.management.jmxremote。authenticate = false -Dcom.sun.management.jmxremote.ssl = false -Djava.rmi.server.hostname = <服务器的IP> 而且您可以使用VisualVM进行连接。 – 2013-03-23 12:23:39

+0

MBeans教程 - 您是否需要定制一些内容:http://docs.oracle.com/javase/tutorial/jmx/mbeans/standard.html – 2013-03-23 12:26:26