java - 封装可执行文件

标签 java executable encapsulation

我有一个二进制可执行文件,我有 C++ 源代码。我需要在我的 Java 代码中以某些方式使用它。我计划将其包装为 Java 中的类,因此我的代码将调用我的类,而不是直接调用可执行文件。这类似于 .net 包装旧 com 组件的方式。由于我是java新手,我想知道是否有更好的方法来解决它。

最佳答案

这取决于您想要使用它的“某些方式”。

如果你想直接调用方法,你(可能)需要学习JNI。有一些奇怪的 COM <-> Java 东西,或者至少过去是这样。

如果您想或多或少地将数据“通过管道”传入和传出可执行文件(类似于 UNIX 命令),您需要查看 Runtime.exec() 或更新(且更好)的 ProcessBuilder。直接使用 Runtime.exec() 具有挑战性,因此,如果这是您想要的,请搜索一些有助于支持它的库或示例代码。

(编辑添加以响应 OP 的评论)对于作为 shell 命令运行,您需要查看 RUntime.exec() 或 ProcessBuilder。以下是一些链接:

stack overflow discussion 1

stack overflow discussion 2

A JAvaWorld discussion of some pitfalls here

关于java - 封装可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10901746/

相关文章:

c++ - 使一个exe低优先级

Perl 脚本用于记录外部可执行文件输出和错误,同时仍在运行

java - 如何从 ant 执行 javap

java - 使用域名部署Tomcat

java - Tomcat 7 在使用 Jersey 2 时不扫描注解

c# - 自动实现属性的支持字段的可访问性是什么?

java - Smalltalk 与 java 中的实例变量

java - 轮询长任务以获取状态更新

dll - 用 Cygwin 编译独立的 exe

java - java类成员的访问级别