导航:首页 > 编程语言 > java进程号

java进程号

发布时间:2023-04-07 04:45:57

java如何获得系统环境变量和当前程序运行的进程号

import java.util.*;
import java.io.*;

class SysProb
{
//返回纳局当前系统变量的函数,结果放在一个Properties里边,这里只针对win2k以上的,其它系统可以自己改进
public Properties getEnv() throws Exception
{
Properties prop=new Properties();
String OS = System.getProperty("os.name").toLowerCase();
Process p=null;
if(OS.indexOf("windows")>-1)
{
p=Runtime.getRuntime().exec("cmd /c set"); //其它的操作系统可以自行处理, 我这里是win2k
}
BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line=br.readLine())!=null)
{
int i=line.indexOf("=");
if(i>-1)
{
String key=line.substring(0,i);
String value=line.substring(i+1);
prop.setProperty(key,value);
}
}
return prop;
}

//具体用法
public static void main(String[] args)
{
try
{
SysProb sp=new SysProb();
Properties p=sp.getEnv();
System.out.println(p.getProperty("Path")); //注意大小写,如果写成path就不对了
}
catch(Exception e)
{
System.out.println(e);
}

}
}

其他类型:

%COMPUTERNAME% 返回计腔茄桐算机的名称。
%COMSPEC% 返回命令行解释器可执行伍坦程序的准确路径。 %WINDIR% 返回操作系统目录的位置。
%OS% 返回操作系统的名称。Windows 2000 将操作系统显示为 Windows_NT。 %PATH% 指定可执行文件的搜索路径。
%USERDOMAIN% 返回包含用户帐户的域的名称。 %USERNAME% 返回当前登录的用户的名称。

⑵ java获取进程名称

代码:
package com.test;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
public class Target {

public static void main(String[] args) throws InterruptedException { System.out.println(getProcessID());
while(true) {
Thread.sleep(10000);
}

}
public static final int getProcessID() {

RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
System.out.println(runtimeMXBean.getName());
return Integer.valueOf(runtimeMXBean.getName().split("@")[0]) .intValue();

}
}
运行结果:2896@PC-20150603VRPL2896
当前进程ID为2896。
ManagementFactory是一个在运行时管理和监控Java VM的工厂类,它能提供很多管理VM的静态接口,比如RuntimeMXBean;
RuntimeMXBean是Java虚拟机的运行时管理接口.

⑶ 为什么进程显示安装向导用java获取的进程名称

Java 获取进程名称的方法是通过读取操作系统中正在运行的进程列表,获取每个进程的名称和其他详细信息。在操作系统中,一个进程可以包含多个线程,因此获取进程名称是获乱枣取进程名字所表示的主线程的名称。

对于显示安装向导使用Java获取的进程名称不正确的问题,可能有以下几种原因:

1. 进程没有按预期名称显示:如果安装向导没有按照操作系统要求的格式命名,那么Java可能无法正确地识别该进程,并且可能会显示错误的进程名称。

2. 操作系统权限不足:如果Java程序没有足够的权限来访问正在运行的进程列表,那么它可能无法正确地阅读该信息并显示错误的进程名称。

3. 进程正在被占用或关闭:如果安装向导正在被占用或已经关闭,Java可能无法正确地读取正在运行的进程列表,并且可能会显示错误的进程名称哗肆拆。

为了解决这个问题,可以尝试以下方法:

1. 确保进程名称按照操作系统要求的格式命名。

2. 给Java程序赋予足够的权限,以便能够读取正在运行的进程列表。

3. 在尝试读取进程列表之前,确保正在运行的进程没有被占用或已经关闭。雹闹

⑷ jstack 分析出线程id 如何找到进程吗

jstack 分析出线程id 如何找到进程
jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息。
如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack [-l] pid
如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。
另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。
需要注意的问题:
l 不同的 JAVA虚机的线程 DUMP的创建方法和文件格式是不一样的,不同的 JVM版本, mp信息也有差别。
l 在实际运行中,往往一次 mp的信息,还不足以确认问题。建议产生三次 mp信息,如果每次 mp都指向同一个问题,我们才确定问题的典型性。
2、命令格式
$jstack [ option ] pid
$jstack [ option ] executable core
$jstack [ option ] [server-id@]remote-hostname-or-IP
参数说明:
pid: java应用程序的进程号,一般可以通过jps来获得;
executable:产生core mp的java可执行程序;
core:打印出的core文件;
remote-hostname-or-ip:远程debug服务器的名称或IP;
server-id: 唯一id,假如一台主机上多个远程debug服务;

示例:
$jstack –l 23561

线程分析:
一般情况下,通过jstack输出的线程信息主要包括:jvm自身线程、用户线程等。其中jvm线程会在jvm启动时就会存在。对于用户线程则是在用户访问时才会生成。

⑸ wasmaxperm怎么查

高级 Java 必须掌握:JVM 分析工具和查看命令,超详细

薄荷味的团子

2019-6-12 10:56

jinfo

可以输出并修改运行时的Java 进程的opts。

jps

与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。

jstat

一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。

jmap

打印出某个java进程(使用pid)内存内的所有'对象'的情况(如:产生那些对象,及其数量)。

jconsole

一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。

详细:在使用这些工具前,先用JPS命令获取当前的每个jvm进程号,然后选择要查看的JVM。

jstat工具喊则特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。

以下详细介绍各个参数的意义。

jstat -class pid:显示加载宏渗皮class的数量,及所占空间等信息。

jstat -compiler pid:显示VM实时编译的数量等信息。

jstat -gc pid:可以显示gc的信息,查看gc的次数,及时蔽差间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。

jstat -gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。

其他的可以根据这个类推, OC是old内纯的占用量。

jstat -gcnew pid:new对象的信息。

jstat -gcnewcapacity pid:new对象的信息及其占用量。

jstat -gcold pid:old对象的信息。

jstat -gcoldcapacity pid:old对象的信息及其占用量。

jstat -gcpermcapacity pid: perm对象的信息及其占用量。

jstat -util

⑹ java在windows下如何实现获取进程ID

给你个例子,通过调用改高windows的命令得到当前系统内的进程列表,然后你根据需要自己过滤出想要的进程ID(字符串分析).

try {
Process p = Runtime.getRuntime().exec("cmd /c tasklist");
InputStream is = p.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
byte[] buf = new byte[4096];
while(is.read(buf)>0){
//我在这里只是简单输出结果,你可以对结果进行你要的处理。
System.out.println(new String(buf));
}
bis.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
} 答案补充 java是运行在其JVM中的,JVM是操作系统的一个进程,和操作系统中的其他进程是一样的.
对于你的补充提祥念问,建议你使用java的jni来解决.java通过jni可以调用C来完核宴尺成一些底层的事情.

⑺ 如何查看Java进程并获取进程ID

用top -u 命令查友蔽闭看进程以及PID。 命令如下: $ top -u PID — 进程idUSER — 进程所有并好者PR —好裂

⑻ docker容器内外cpu占用不一致

Docker容袜坦器cpu占用问题排查方案如下:
1、top命令查出Java进程ID;
2、查出java进程内告差桐哪个线程ID占用cpu最高;
3、将线程ID转换成16进制;庆陵
4、抓取对应线程堆栈信息;
5、查看线程异常的日志信息:jstack进程号|grep16进制异常线程号-A90。

⑼ 如何查看java进程及服务

鼠标放在电脑桌面底部右击,选择任务管理器,就能看到你想看的了

⑽ java 获取指定的进程id

package test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;

public class GetPid {

private static final String PNAME = "QQ";

public static void main(String[] args)
throws IOException {
System.out.println("包含关键字 "+PNAME+" 的进程有:");
System.out.println();
String path = System.getProperty("user.dir");
final File createFileName = new File(path + "\\mytempscript.vbe");
if(createFileName.exists()?createFileName.delete():createFileName.createNewFile()){}

final PrintWriter pw = new PrintWriter(new FileWriter(createFileName,
true), true);
pw.println("for each ps in getobject(\"winmgmts:\\\\.\\root\\cimv2:win32_process\").instances_");
pw.println("wscript.echo ps.handle&vbtab&ps.name");
pw.println("next");
pw.close();

final InputStream ii = Runtime.getRuntime().exec(
"cscript " + path + "\\mytempscript.vbe").getInputStream();

final InputStreamReader ir = new InputStreamReader(ii);

final BufferedReader br = new BufferedReader(ir);
String str = null;
String[] ss = null;
while ((str = br.readLine()) != null) {
if (str.indexOf(PNAME)>0&&str.endsWith(".exe")) {
ss = str.split("\\s");
for(int i=0;i<ss.length;i+=2){
System.out.println("****************************");
System.out.println("进程名:"+ss[i+1]+"\n进程ID:"+ss[i]);
}
}
}
System.out.println("****************************");
ir.close();
ii.close();
br.close();
}
}

运行结果如下

包含关键字 QQ 的进程有:

****************************
进程名:QQ.exe
进程ID:3956
****************************

阅读全文

与java进程号相关的资料

热点内容
linuxftp自动登录 浏览:802
运行编译后网页 浏览:70
阅读app怎么使用 浏览:319
centos防火墙命令 浏览:432
命令行变更 浏览:332
linux设备和驱动 浏览:207
加密货币骗局破案 浏览:345
cc特征码加密 浏览:775
清空dns缓存命令 浏览:295
文件夹单击右键一直转圈 浏览:820
天天玩乐园是哪个app 浏览:395
单片机数码管动态显示效果图 浏览:874
备用dns服务器地址可以调吗 浏览:267
ad剑魔和app哪个好 浏览:865
java的undefined 浏览:813
列表的合并与排序python代码 浏览:324
编译原理英文版pdf下载 浏览:951
c单片机pdf 浏览:827
adb下载命令 浏览:126
安卓怎么打开pdf 浏览:108