我需要与 Java Enterprise 应用程序中的 C/C++ 交互。我想编写一个能够收集节点/单元信息的类,可能还有关于应用程序部署位置的任何其他信息,所以我可以从 C++ 追溯到调用来自的文件系统中的 JAR(权威)。是否有我可以利用的特定 Java 库来提供有关应用程序的此类信息?理想情况下,会发生什么:(我们称之为 EnvProvider)
- Java App 调用 EnvProvider
- EnvProvider 收集有关调用它的 Java 应用程序的信息
- EnvProvider 调用包装好的 C++(CORBA、SOAP 可能?)并传递此信息
- C++ 跟踪将文件系统备份到调用应用程序,以检查声称的应用程序调用来自的实际 JAR 文件。
这听起来微不足道(此处仅列出 4 个步骤),但从我迄今为止的研究来看,似乎没有什么好的方法可以从 Java 应用程序本身获取有关 Java 应用程序的足够信息。通过“足够”的信息,我所说的足够给 C++ 足够的信息来遍历文件系统并找到已部署的 EAR、JAR、WAR。
您可以提供的任何信息将不胜感激!
问候
乍得
* 编辑*
金,谢谢你的回复。让我解释一下为什么我需要获取这个特定的跟踪。
我正在开发/使用一个用 C/C++ 编写的加密库。它们是我的前任在这里(我工作的地方)编写的,并且经过了很好的测试。然而,它们提供的不仅仅是加密,其中包含的算法是专有的,需要保持安全。这排除了在 Java 中实现相同的功能,因为 Java 太容易被反向编译。事实上,我的前任不遗余力地(有理由地)混淆 C/C++ 源代码。这些库与 Shell、本机 C/C++ 二进制可执行文件(.exe 等)以及调用将来自(大部分)完全包含的应用程序的其他应用程序很好地配合使用。此源提供了确保调用它的应用程序实际上是受信任的应用程序的方法(听起来类似于代码签名,
我正在尝试将此功能扩展到我们的 Enterprise Java 架构中,为了做到这一点,我需要能够返回调用的来源,即使这意味着只需要访问已部署的 WAR 甚至是应用程序已打包,因此我可以将源文件与 C/C++ 源代码一起使用。因此,如果调用来自应用程序 A,并且应用程序部署在 App_A.EAR 中,我想获取该信息并调用 C/C++,回溯到该 EAR 并使用它。如果这听起来令人困惑,我深表歉意,但我(作为行为问题)遗漏了大部分文件(.exe 或 JAR/WAR/EAR)的用途。
再次感谢您提供的任何帮助!
* 编辑*
乍得