java 中如何获取cmd程序结束

java 中如何获取cmd程序结束,第1张

最简单的方法,估算一下大概要用多少时间能编译完,用Threadsleep()睡几秒,如果估算不了,就用while循环每睡一秒判断一次aasm是否存在(建立上级目录的File对象列出文件),存在的话在再建立aasm的File对象

将下面代码里面的processName 变成你这个进程的名字ClientDemoexe就可以了

BufferedReader br=null;

try{

Process proc=RuntimegetRuntime()exec("tasklist -fi " + '"' + "imagename eq " + processName +'"');

br=new BufferedReader(new InputStreamReader(procgetInputStream()));

String line=null;

while((line=brreadLine())!=null){

//判断指定的进程是否在运行

if(linecontains(processName)){

return true;

}

}

return false;

}catch(Exception e){

eprintStackTrace();

return false;

}finally{

if(br!=null){

try{

brclose();

}catch(Exception ex){

}

}

}

这个需要取么,都是定死的,每年都一样

第一季度:1月1号,3月31号

第二季度:4月1号,6月30号

第三季度:7月1号,9月30号

第四季度:10月1号,12月31号

和闰年也没关系,不需要编程计算,最多定义常量来保存

获取指定文件最后一次修改时间代码如下:

package comxianhome2;

import javaioBufferedReader;

import javaioFile;

import javaioFileInputStream;

import javaioFileNotFoundException;

import javaioIOException;

import javaioInputStream;

import javaioInputStreamReader;

import javatextSimpleDateFormat;

import javautilCalendar;

import javautilDate;

import javautilList;

public class FileOperate {

/

@param args

/

public static void main(String[] args) {

// FileOperate fo = new FileOperate();

// String filepath = "G:\\02";

// fogetFileList(filepath);

getCreateTime();

}

public List<File> getFileList(String filepath) {

try {

File file = new File(filepath);

if (fileisDirectory()) {

String[] filelist = filelist();

for (int i = 0; i < filelistlength; i++) {

File Ifile = new File(filepath + "\\" + filelist[i]);

FileInputStream fis = new FileInputStream(Ifile);

long modifiedTime = IfilelastModified();

Date date=new Date(modifiedTime);

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:MM");

String dd=sdfformat(date);

Systemoutprintln("File name:" + IfilegetName()

+ " \tFile size: "

+ (double) ((double) fisavailable() / 1024 / 1024)

+ "M"+ " \tFile create Time: "+dd);

}

}

} catch (FileNotFoundException e) {

eprintStackTrace();

} catch (IOException e) {

eprintStackTrace();

}

return null;

}

/

读取文件创建时间

/

public static void getCreateTime(){

String filePath = "G:\\02\\123txt";

String strTime = null;

try {

Process p = RuntimegetRuntime()exec("cmd /C dir "

+ filePath

+ "/tc" );

InputStream is = pgetInputStream();

BufferedReader br = new BufferedReader(new InputStreamReader(is));

String line;

while((line = brreadLine()) != null){

if(lineendsWith("txt")){

strTime = linesubstring(0,17);

break;

}

}

} catch (IOException e) {

eprintStackTrace();

}

Systemoutprintln("创建时间 " + strTime);

//输出:创建时间 2009-08-17 10:21

}

/

读取文件修改时间的方法1

/

@SuppressWarnings("deprecation")

public static void getModifiedTime_1(){

File f = new File("C:\\testtxt");

Calendar cal = CalendargetInstance();

long time = flastModified();

calsetTimeInMillis(time);

//此处toLocalString()方法是不推荐的,但是仍可输出

Systemoutprintln("修改时间[1] " + calgetTime()toLocaleString());

//输出:修改时间[1] 2009-8-17 10:32:38

}

/

读取修改时间的方法2

/

public static void getModifiedTime_2(){

File f = new File("C:\\testtxt");

Calendar cal = CalendargetInstance();

long time = flastModified();

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

calsetTimeInMillis(time);

Systemoutprintln("修改时间[2] " + formatterformat(calgetTime()));

//输出:修改时间[2] 2009-08-17 10:32:38

}

Process类提供的函数很少,找了一下,能跟判断终止有关的函数只有一个:

exitValue()

public abstract int exitValue()Returns the exit value for the subprocess

Returns:

the exit value of the subprocess represented by this Process object by convention, the value 0 indicates normal termination

Throws:

IllegalThreadStateException - if the subprocess represented by this Process object has not yet terminated

通过这个函数可得到Process的终止方式。如果未终止,抛出异常。

捕获这个异常就行了。

java中等待几秒无返回结束

Java 调用一个三方申请接口需要等一段时间,时间不确定再调用申请结果查询接口,如果sleep几秒调用一次有返回结果就返回这样影响性能,有什么比较好的方法?kakai 如果是java服务调用这个接口服务,那么那个接口服务设计上就存在问题。这种接口服务

Java调用一个三方应用程序接口需要等待一段时间,时间不确定,然后调用应用程序结果查询接口,如果sleep被几次调用 秒,然后返回结果,它将影响性能。 更好的方法?

package comxianhome2;

import javaioBufferedReader;

import javaioFile;

import javaioFileInputStream;

import javaioFileNotFoundException;

import javaioIOException;

import javaioInputStream;

import javaioInputStreamReader;

import javatextSimpleDateFormat;

import javautilCalendar;

import javautilDate;

import javautilList;

public class FileOperate {

/

@param args

/

public static void main(String[] args) {

// FileOperate fo = new FileOperate();

// String filepath = "G:\\02";

// fogetFileList(filepath);

getCreateTime();

}

public List<File> getFileList(String filepath) {

try {

File file = new File(filepath);

if (fileisDirectory()) {

String[] filelist = filelist();

for (int i = 0; i < filelistlength; i++) {

File Ifile = new File(filepath + "\\" + filelist[i]);

FileInputStream fis = new FileInputStream(Ifile);

long modifiedTime = IfilelastModified();

Date date=new Date(modifiedTime);

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:MM");

String dd=sdfformat(date);

Systemoutprintln("File name:" + IfilegetName()

+ " \tFile size: "

+ (double) ((double) fisavailable() / 1024 / 1024)

+ "M"+ " \tFile create Time: "+dd);

}

}

} catch (FileNotFoundException e) {

eprintStackTrace();

} catch (IOException e) {

eprintStackTrace();

}

return null;

}

/

读取文件创建时间

/

public static void getCreateTime(){

String filePath = "G:\\02\\123txt";

String strTime = null;

try {

Process p = RuntimegetRuntime()exec("cmd /C dir "

+ filePath

+ "/tc" );

InputStream is = pgetInputStream();

BufferedReader br = new BufferedReader(new InputStreamReader(is));

String line;

while((line = brreadLine()) != null){

if(lineendsWith("txt")){

strTime = linesubstring(0,17);

break;

}

}

} catch (IOException e) {

eprintStackTrace();

}

Systemoutprintln("创建时间 " + strTime);

//输出:创建时间 2009-08-17 10:21

}

/

读取文件修改时间的方法1

/

@SuppressWarnings("deprecation")

public static void getModifiedTime_1(){

File f = new File("C:\\testtxt");

Calendar cal = CalendargetInstance();

long time = flastModified();

calsetTimeInMillis(time);

//此处toLocalString()方法是不推荐的,但是仍可输出

Systemoutprintln("修改时间[1] " + calgetTime()toLocaleString());

//输出:修改时间[1] 2009-8-17 10:32:38

}

/

读取修改时间的方法2

/

public static void getModifiedTime_2(){

File f = new File("C:\\testtxt");

Calendar cal = CalendargetInstance();

long time = flastModified();

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

calsetTimeInMillis(time);

Systemoutprintln("修改时间[2] " + formatterformat(calgetTime()));

//输出:修改时间[2] 2009-08-17 10:32:38

}

}

以上就是关于java 中如何获取cmd程序结束全部的内容,包括:java 中如何获取cmd程序结束、java获取进程的运行状态。主要是获取该进程有没有终止、用java怎么取某年某个季度的开始日期与结束日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9645289.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存