如何用java获得当前运行的进程信息

时间:2021-08-26 04:58:18
我们有一个JavaSE(准确的说是 Eclipse RCP的,不过这不影响我的问题描述)的程序,里面用了JNI技术,JNI那边是用C++写的代码。

发现呢,System.out.println("xx");的信息输出可以打印到控制台(即可以看到打出的信息),但是C++那部分打印的东西看不到。

我想到了用Process.getOutputStream() 来获得C++那部分代码的输出。

所以现在的问题就是要得到当前的这个Process。
我们知道如果启动一个带有main方法的java类的话,他应该在一个 javaw.exe 进程中。

怎么样用java代码获得 这个进程 Process 对象呢?

6 个解决方案

#1


没人回答?自己顶一下吧...

#2


Thread currentThread = Thread.currentThread();  // 获得当前的线程          
String threadName = currentThread.getName();  

#3


引用 2 楼 leehomwong 的回复:
Thread currentThread = Thread.currentThread();  // 获得当前的线程          
String threadName = currentThread.getName();


这个,是得到了线程吧? 我想要的是进程呀。 java.lang.Process.

#4


JNI。。没用过,也不想用,
不过,既然可以写一个 本地方法 来调用 JNI ,为什么不能再写一个本地方法来返回 输入输出流呢。。。

#5


引用 4 楼 zssazrael 的回复:
JNI。。没用过,也不想用,
不过,既然可以写一个 本地方法 来调用 JNI ,为什么不能再写一个本地方法来返回 输入输出流呢。。。


呵呵 如果这样,倒不如直接传一个文件的引用到JNI,C++直接把内容输出到文件。。

Anyway, thanks!

#6


JNI是不很高深啊,越发觉得是这样子的

#1


没人回答?自己顶一下吧...

#2


Thread currentThread = Thread.currentThread();  // 获得当前的线程          
String threadName = currentThread.getName();  

#3


引用 2 楼 leehomwong 的回复:
Thread currentThread = Thread.currentThread();  // 获得当前的线程          
String threadName = currentThread.getName();


这个,是得到了线程吧? 我想要的是进程呀。 java.lang.Process.

#4


JNI。。没用过,也不想用,
不过,既然可以写一个 本地方法 来调用 JNI ,为什么不能再写一个本地方法来返回 输入输出流呢。。。

#5


引用 4 楼 zssazrael 的回复:
JNI。。没用过,也不想用,
不过,既然可以写一个 本地方法 来调用 JNI ,为什么不能再写一个本地方法来返回 输入输出流呢。。。


呵呵 如果这样,倒不如直接传一个文件的引用到JNI,C++直接把内容输出到文件。。

Anyway, thanks!

#6


JNI是不很高深啊,越发觉得是这样子的