最简单的方法,估算一下大概要用多少时间能编译完,用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怎么取某年某个季度的开始日期与结束日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)