在工作中,我使用Java应用程序(我在C驱动器上找到了编译/可执行的jar文件)。我希望能够通过代码从这个应用程序中获取一些信息。应用程序本身可能不存储信息,因此它必须以某种方式与遗留系统进行通信,我不知道如何,我已经看到了Servlet的痕迹(?)因此,我怀疑该应用程序还具有内置的“加密”( ?)
我不想参与加密和登录程序等,所以我想我可以围绕当前的可执行jar构建一个Java项目,并像往常一样启动应用程序(通过“主”条目点,“Start.jar”,但在执行后调用我想要的函数(即应用程序只在后台运行)...
这可能吗?还有另外一种方法吗?例如,可以连接已经执行的Java应用程序并发出命令吗?
到目前为止我尝试了什么
似乎从主程序内部调用另一个程序,该程序驻留在另一个jar中,在Eclipse的调试窗口中我只看到一个错误,这让我怀疑我当前的方法是否可行..也许问题出现了,因为命令是从编译的jar发出的? “类路径”会出现问题吗?这根本不是解决方案吗?但话说回来,我没有Java经验(主要是VBA和一些C#)。
答案 0 :(得分:2)
您可以使用选项启动应用程序的JVM,从而启用远程调试。然后,您可以将eclipse调试器连接到此JVM。
答案 1 :(得分:1)
根据您的问题,我猜你的应用程序没有可以编码的Java API。那当然是最简单的方法。所以,如果你还没有检查过,那就先做。
假设您没有可用于编码的API,我认为您的方法是正确的。但这可能很难,因为你基本上是盲目地试图找出应用程序在做什么。远程调试可能会解决部分问题。
如果您确定通过网络发送请求,可能会有一个稍微简单的解决方案。您可以使用Wireshark之类的工具来查看它正在创建的内容。然后,您可以让应用程序创建看起来像这样的请求并将它们发送到该目标。这当然假设请求未加密。在那种情况下,你可能运气不好。