java 怎么获取当前进程的映像名称

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 怎么获取当前进程的映像名称相关的知识,希望对你有一定的参考价值。

网上查了一些资料,说是没办法直接在 java 中获取到,
网上资料说,可以使用 java 的 native 方法,通过在 c++ 中实现 native 方法,此时就可以在 java 中直接调用了。

例子:

public class JavaNative

static
try
System.loadLibrary("JavaNativeDLL.dll");
catch (UnsatisfiedLinkError e)
System.err.println("Native code library failed to load.\n" + e);



public native java.util.List getProcessList();

public native List getProcessIDList();

public native String getProcessName(long processID);



然后,你通过 C++ 写一个 JNI 来实现上面这个 JavaNative 的 Class 类,然后编绎生成出一个 JavaNativeDLL.dll ,然后在 JavaNative 中加载这个 JavaNativeDLL.dll。

这样,你在任何 java 程序中可以像普通 java 调用方法一样,直接使用 JavaNative 来获取到进程名称了。

使用方法:

public static void main(String[] args)
JavaNative jn = new JavaNative();
List list = jn.getProcessIDList();
for(int i=0; i<lilst.size(); i++)
String processName = jn.getProcessName((long)list.get(i));
System.out.println("进程名称是:" + processName );



追问

不会c++ --!

参考技术A 就不告诉你..急死你追问

是不知道吧

追答

哈哈..这么深奥的问题..我怎么会知道...

在Java中获取当前进程端口

【中文标题】在Java中获取当前进程端口【英文标题】:Get the current process port in Java 【发布时间】:2022-01-22 17:30:52 【问题描述】:

为了获取我正在使用的 java 应用程序的进程号:

ManagementFactory.getRuntimeMXBean().getName()

我还需要获取进程使用的当前端口号,但我似乎找不到如何从运行时获取它。

有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

默认情况下程序不使用/打开端口。 您(-> 一个程序)需要查询操作系统以获取(免费)端口。 因此,没有通用方法可以查询正在运行的进程的“使用端口”。 也许本教程会对您有所帮助:https://www.baeldung.com/java-free-port

【讨论】:

以上是关于java 怎么获取当前进程的映像名称的主要内容,如果未能解决你的问题,请参考以下文章

Java如何获取正在运行的线程的Id

为啥我的windows任务管理器中进程 映像名称中一大堆realplay.exe 而且cpu使用100%

Android怎么获取进程Id

Runnable 怎么获取线程的名字

Java进程通信之映像文件共享内存

c#怎么获取程序当前运行路径