【问题标题】:Control running Java SE program remotely远程控制运行Java SE程序
【发布时间】:2013-03-23 11:33:29
【问题描述】:

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

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

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

【问题讨论】:

  • SSH 我什至不知道它是什么?你能提供更多信息吗?
  • 这是一种在远程机器上获取终端shell访问的方法,我推荐你google一下。使用它,您可以使用命令行进程管理工具与您的程序进行通信。
  • 独立于操作系统吗?
  • 虽然它是一个unix工具,但它适用于windows。有关如何在您的计算机上设置服务器的信息,请参阅 techrepublic.com/blog/itdojo/…。然后,您可以使用 ssh 客户端(例如 Putty chiark.greenend.org.uk/~sgtatham/putty)连接到该 ssh 服务器

标签: java remote-access


【解决方案1】:

在启用JPDA 的情况下运行您的应用程序。这样你就可以远程连接它,检查线程等等。

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

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

【讨论】:

  • 谢谢@GaborSch 我会探索它。
  • 如果两台机器之间的带宽较低,这将无法有效地工作。
  • 谢谢@GaborSch。我认为这没有问题。
【解决方案2】:

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

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

【讨论】:

  • 在服务器进程中加入这个:-Dcom.sun.management.jmxremote.port=1234 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote。 ssl=false -Djava.rmi.server.hostname= 你就可以连接VisualVM了。
  • MBeans 教程 - 如果您需要一些定制的东西:docs.oracle.com/javase/tutorial/jmx/mbeans/standard.html
【解决方案3】:

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

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

【讨论】:

  • 谢谢。不幸的是,我使用的是 Windows 7。
  • 所以不能在远程Win7机器上启用远程桌面?
  • 说实话,我从来没有这样做过,我肯定会尝试这样做。谢谢。
猜你喜欢
  • 2011-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-05
  • 2013-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多