2010-03-02 36 views
4

我知道如何在已经存在的机器上远程调试java应用程序,但有人知道可以从本地工作区启动的解决方案(例如eclipse) ,将本地类路径中的任何代码传输到远程或虚拟机,在那里执行它并连接远程调试器,一步到位?我希望某种服务器需要在远程机器上运行,以接受类文件并执行它们。在远程或虚拟机上启动和调试Java应用程序

我曾经对JUnit做过类似的事情,通过RMI将本地测试用例传递给远程机器,并在那里执行它们,并将结果传回给我的eclipse。因为这些测试用例是JUnit测试,所以很容易将它与JUnit-launcher和Eclipse中的工具集成在一起,但是为了调试整个应用程序,我怀疑它有点复杂。

我想问一下,如果有任何解决方案,或者如果有人已经做到这一点,并指出我在正确的方向。

VMWARE Workstation有类似的东西,但是我在Mac上开发,它在Fusion中不可用。

回答

0

我想你可以使用在Eclipse中执行的ant任务自动执行部署任务。

  1. 对于Java应用程序可能会通过ftp http://ant.apache.org/manual/Tasks/ftp.html复制你的编译类和使用该目录中的文件进行扫描,并在调试启动这些守护程序(可解析罐子的清单)。您也可以将您的Java应用程序“打包”为J2EE应用程序以便于调试
  2. 对于J2EE应用程序,您可能会看到J2EE服务器的部署功能。
2

这不是说,如果你想调试测试应用程序或别的东西。我将假设它是一个普通的Java应用程序。您可以在远程虚拟机中设置SMB共享或ftp服务器,然后使用ant任务将所有类文件打包并复制到第二个虚拟机。由于您使用的是mac,因此您可以使用ssh连接并使用调试标志启动java应用程序。然后,这将是一个两步过程:

  • Ant脚本
    • 包所有的编译代码
    • 复制编译后的代码(FTP,SCP,SMB,或诸如此类的东西)
    • 与ssh连接并启动带有调试选项的应用程序。您可以使用该选项等待服务器等待传入连接。

然后在Eclipse中,你将有一个远程调试配置,将连接到远程计算机中指定的代码。

要做到这一步,可以通过编写一个扩展Debug Launcher的小型Eclipse插件来完成。您可以扩展“远程调试启动”以执行这些自定义复制代码。

+0

谢谢你的洞察力,这将是一个好的开始。是的,我正在谈论一个非常标准(大)的Java应用程序。任何想法如何访问eclipse在ant脚本中为项目内部构建的类路径?没有看到可以使用的变量中的任何内容。 我可以读取所选项目的.classpath文件,但是如何找到依赖项/引用的项目等?也许我应该使用maven生成完整的类路径作为文件(在编译时),并使用此文件作为传输到远程机器的基础。 – 2010-03-02 15:02:54

相关问题