【发布时间】:2022-01-21 22:56:15
【问题描述】:
对于linux-text,我曾经做过这样的努力:
ProcessBuilder p = new ProcessBuilder("/path/to/file/c/executable");
p.start();
但我在输入和输出方面遇到了麻烦。
这是另一个suggestion:
Kernel32.java:
public interface Kernel32 extends StdCallLibrary {
----
};
public Kernel32 INSTANCE = (Kernel32) Native.loadLibrary("Kernel32", Kernel32.class, WIN32API_OPTIONS);
----
}
RunTest.java
public class RunTest {
---
static HANDLE inputFile = null;
static void createChildProcess(String cmd){
String szCmdline = cmd;
PROCESS_INFORMATION processInformation = new PROCESS_INFORMATION();
STARTUPINFO startupInfo = new STARTUPINFO();
--
// Create the child process.
if (!Kernel32.INSTANCE.CreateProcess(
--
System.err.println(Kernel32.INSTANCE.GetLastError());
}
else {
com.sun.jna.platform.win32.Kernel32.INSTANCE.WaitForSingleObject(processInformation.hProcess, 0xFFFFFFFF);
---
}
}
static void WriteToPipe()
// Stop when there is no more data.
{
IntByReference dwRead = new IntByReference();
--
for (;;)
{
--
}
太长了,无法和jni解决方案一样测试,有没有更简单的说明?
【问题讨论】:
标签: java linux executable jna processbuilder