Java Process 클래스 상세 및 인스턴스 코드
선언:
오늘 자바를 썼어요.Lang. Process류는 초보적인 학습일 뿐 깊이 있게 실천하지 않았습니다. 왜냐하면 그 용도가 그리 크지 않기 때문에 가끔 사용할 수 있습니다. 자주 사용하고자 하는 사람은 JDk 문서를 참고할 수 있습니다.
Process 클래스에 대한 간략한 설명:
프로세스 클래스는 추상적인 클래스입니다. 방법은 모두 추상적인 것입니다. 프로세스를 봉인합니다. 즉, 실행 가능한 프로그램입니다. 이 클래스는 프로세스의 입력, 실행, 출력, 프로세스의 완성을 기다리고 프로세스의 종료 상태를 검사하며 프로세스를 제거하는 방법입니다.
ProcessBuilder.start() 및 Runtime.exec 방법은 본 컴퓨터의 프로세스를 만들고 프로세스 하위 클래스의 실례를 되돌려줍니다. 이 실례는 프로세스를 제어하고 관련 정보를 얻을 수 있습니다.
기타 개요는 JDK 문서를 참조하십시오.
다음은 몇 가지 간단한 예를 들겠습니다.
(1) 간단한 DOS 명령을 실행합니다.
package com.iwtxokhtd.other;
import java.io.IOException;
public class ProcessTest {
public static void main(String[] args) {
try {
Process proc=Runtime.getRuntime().exec("notepad");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.iwtxokhtd.other;
import java.io.IOException;
public class ProcessTest {
public static void main(String[] args) {
try {
Process proc=Runtime.getRuntime().exec("notepad");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
(2) 다른 구조 방법을 사용하여 다음과 같은 명령을 수행합니다.
package com.iwtxokhtd.other;
import java.io.IOException;
public class ProcessTest {
public static void main(String[] args) {
try {
String exeFullPathName="C:/Program Files/Internet Explorer/IEXPLORE.EXE";
String message="www.google.com";
String []cmd={exeFullPathName,message};
Process proc=Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.iwtxokhtd.other;
import java.io.IOException;
public class ProcessTest {
public static void main(String[] args) {
try {
String exeFullPathName="C:/Program Files/Internet Explorer/IEXPLORE.EXE";
String message="www.google.com";
String []cmd={exeFullPathName,message};
Process proc=Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
위의 명령을 실행하면 Google 웹 사이트를 열 수 있습니다.(3) 시스템이 실행 중인 모든 프로세스 정보를 나열합니다.
package com.iwtxokhtd.other;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ListAllProcessTest {
//
public static void main(String[] args) {
BufferedReader br=null;
try {
Process proc=Runtime.getRuntime().exec("tasklist");
br=new BufferedReader(new InputStreamReader(proc.getInputStream()));
@SuppressWarnings("unused")
String line=null;
System.out.println(" ");
while((line=br.readLine())!=null){
System.out.println(br.readLine());
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(br!=null){
try {
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
package com.iwtxokhtd.other;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ListAllProcessTest {
//
public static void main(String[] args) {
BufferedReader br=null;
try {
Process proc=Runtime.getRuntime().exec("tasklist");
br=new BufferedReader(new InputStreamReader(proc.getInputStream()));
@SuppressWarnings("unused")
String line=null;
System.out.println(" ");
while((line=br.readLine())!=null){
System.out.println(br.readLine());
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(br!=null){
try {
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
(4) 다음과 같이 특정 프로세스가 실행 중인지 여부를 판단합니다.
package com.iwtxokhtd.other;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class FindProcessExeTest
{
public static void main(String []args){
if(findProcess("QQ.exe")){
System.out.println("------ ------");
System.out.println("QQ.exe !");
}else{
System.out.println("------ ------");
System.out.println("QQ.exe !");
}
}
public static boolean findProcess(String processName){
BufferedReader br=null;
try{
// processName
Process proc=Runtime.getRuntime().exec("tasklist /FI /"IMAGENAME eq "+processName+"/"");
br=new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line=null;
while((line=br.readLine())!=null){
//
if(line.contains(processName)){
return true;
}
}
return false;
}catch(Exception e){
e.printStackTrace();
return false;
}finally{
if(br!=null){
try{
br.close();
}catch(Exception ex){
}
}
}
}
}
package com.iwtxokhtd.other;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class FindProcessExeTest
{
public static void main(String []args){
if(findProcess("QQ.exe")){
System.out.println("------ ------");
System.out.println("QQ.exe !");
}else{
System.out.println("------ ------");
System.out.println("QQ.exe !");
}
}
public static boolean findProcess(String processName){
BufferedReader br=null;
try{
// processName
Process proc=Runtime.getRuntime().exec("tasklist /FI /"IMAGENAME eq "+processName+"/"");
br=new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line=null;
while((line=br.readLine())!=null){
//
if(line.contains(processName)){
return true;
}
}
return false;
}catch(Exception e){
e.printStackTrace();
return false;
}finally{
if(br!=null){
try{
br.close();
}catch(Exception ex){
}
}
}
}
}
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.