java获取cmd启动的程序的PID

笔记整理:

 1 /*java获取cmd启动程序的PID */
 2 /*zzq581573832013-05-08上传*/
 3 //代码:
 4 static interface Kernel32 extends Library{
 5         public static Kernel32 INSTANCE=(Kernel32)
 6         Native.loadLibrary("kernel32", Kernel32.class);
 7         public int GetProcessId(Long hProcess);
 8     }
 9 try {
10        Field f = p.getClass().getDeclaredField("handle");
11        f.setAccessible(true);
12        long pid = Kernel32.INSTANCE.GetProcessId((Long) f.get(p));
13        System.err.println(pid);
14 }
时间: 2024-10-20 03:56:17

java获取cmd启动的程序的PID的相关文章

Java虚拟机的启动与程序的运行

这篇文章是从 OpenJDK 源代码的角度讲当我们运行了 java -classpath . hello 之后,java.exe 如何从 main 函数开始执行,启动虚拟机,并执行字节码中的代码. 实验环境 要了解一个系统是如何运行的,光看是不行的,要实际地运行,调试,修改才能对系统的动作方式有所了解. 起初我是按照 GitHub 上的一个项目 OpenJDK-Research 在 windows 7 64位平台上,使用 Visual Studio 2010 来调试,运行的.但是后来发现,这个项

Java虚拟机的启动与程序的执行

这篇文章是从 OpenJDK 源码的角度讲当我们执行了 java -classpath . hello 之后,java.exe 怎样从 main 函数開始运行,启动虚拟机,并运行字节码中的代码. 实验环境 要了解一个系统是怎样执行的,光看是不行的,要实际地执行,调试,改动才干对系统的动作方式有所了解. 起初我是依照 GitHub 上的一个项目 OpenJDK-Research 在 windows 7 64位平台上,使用 Visual Studio 2010 来调试,执行的.可是后来发现,这个项目

Java多次启动相同jar程序

背景 现在很多软件都支持集群部署,但是测试环境通常资源有限,所以一般通过单台机器模拟集群部署(使用不同端口,运行相同jar包),本文的目的就是通过多种方式实现此需求. 两个程序 1.jar程序 ① springboot程序 ② 只包含一个main方法,用于启动程序,输出进程ID ③ 路径:C:/demo.jar(windows) /demo.jar(Linux) 2.启动程序 ① 包含main方法的程序 多种方式 1.通过URLClassLoader加载jar程序(windows平台) 2.通过

一起学android之如何获取手机程序列表以及程序相关信息并启动指定程序 (26)

效果图: 程序列表: 启动程序,获取程序信息: 代码如下: 创建一个AppInfo类来表示应用程序 <pre name="code" class="java">public class AppInfo { public CharSequence title;// 程序名 public CharSequence packageName; // 程序包名 Intent intent;// 启动Intent public Drawable icon;// 程序

android 获取手机的所有程序和widget的包名和启动类名

获取 widget可以 AppWidgetManager 来获取 List<AppWidgetProviderInfo> widget=AppWidgetManager.getInstance(Context(上下文)).getInstalledProviders(); 得到所有AppWidgetProviderInfo for (int i = 0; i < widget.size(); i++) {        AppWidgetProviderInfo info=widget.g

java执行cmd命令并获取输出结果

1.java执行cmd命令并获取输出结果 1 import java.io.BufferedReader; 2 import java.io.InputStreamReader; 3 4 import org.apache.commons.lang3.text.StrBuilder; 5 6 /** 7 * 8 * @author user1 9 */ 10 public class DeleteProgram { 11 public static void run() { 12 Runtime

init.rc文件中面启动c++程序,通过jni调用java实现

</pre><p>注:假设是自己的myself.jar包,还要修改例如以下:</p><p>target/product/core_base.mk PRODUCT_BOOT_JARS := core:myself</p><p></p><p>功能:手机开机后要写个标志位. 已有实现.就是收到开机广播后,启动服务读取bp中的标志位(java代码须要等待ril准备好).并把这个标志位写入到ap中(java代码调用c++

cmd.exe-应用程序错误 应用程序无法正常启动(0xc0000142)

之前还好好的,突然就遇到这个问题,运行CMD报错(如上图),后面无论怎么重启都是这样. 导致所有与CMD相关的程序任务都出错,例如Ctrl+Alt+Delete 只好开始各种百度谷歌 找到如下几种解决方案: 1.进入安全模式使用sfc,如果有相关文件损坏,会自动进行修复,但是我的CMD文件没有任何问题,所以该方法对我没用. 2.进入安全模式使用chkdsk /F,检查是不是磁盘损坏了,我的磁盘没坏,所以没用. 3.软件冲突 经过我测试发现,每次我重启的第一时间就开启CMD,是可以正常启动的,等到

init.rc文件里面启动c++程序,通过jni调用java实现

功能:手机开机后要写个标志位. 已有实现,就是收到开机广播后,启动服务读取bp中的标志位(java代码需要等待ril准备好), 并把这个标志位写入到ap中(java代码调用c++). 后来遇到的问题:实际应用中发现,接收开机广播等待的时间更长,需要提前写入ap时间. 解决方案: 在init.rc文件里面启动c++程序,通过jni调用java实现. 精简代码如下: C++程序代码: #define LOG_TAG "testmain" #define LOG_NDEBUG 0 #incl