ArrayList<String> cmd_exec_installer = new ArrayList<String>(); cmd_exec_installer.add("file.exe"); Process proc = new ProcessBuilder(cmd_exec_installer).start();
我想要做的是获得开始执行file.exe的进程的PID。
有没有办法在Java中做到这一点?
C + +的Windows IP发布和更新
运行C ++非托pipe控制台应用程序(不是一个batch file)没有窗口
用于Windows的Ruby Shellwords.shellescape?
任务栏和Clicable应用程序图标之间的图标不匹配
屏幕截图不像Windows预期的那样保存,但可以在iOS上使用
ruby控制台模拟器
如何在Windows上使用其他C ++编译器与CUDA?
这个问题已经在这里和这里回答了 。
基本上,没有简单的方法来完成任务,除非你使用JNI库或反射,如链接的问题所建议的。
这在Windows 7上对我完美的工作:
//Imports import com.sun.jna.*; import com.sun.jna.platform.win32.coreel32; import com.sun.jna.platform.win32.WinNT; private String getwindowsProcessId(Process proc) { if (proc.getClass().getName().equals("java.lang.Win32Process") || proc.getClass().getName().equals("java.lang.ProcessImpl")) { try { Field f = proc.getClass().getDeclaredField("handle"); f.setAccessible(true); long handl = f.getLong(proc); coreel32 kernel = coreel32.INSTANCE; WinNT.HANDLE handle = new WinNT.HANDLE(); handle.setPointer(Pointer.createConstant(handl)); return Integer.toString(kernel.GetProcessId(handle)); } catch (Throwable e) { } } return ""; }
资料来源: http : //cnkmym.blogspot.com/2011/10/how-to-get-process-id-in-windows.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。