java编程批处理

java编程批处理,第1张

import java.io.File

import java.io.FileWriter

import java.io.IOException

import java.sql.ResultSet

import java.sql.SQLException

import java.util.ArrayList

import java.util.Stack

public class CheckFilebatch {

private static final String LOG_FILE = "F:/CheckFilebatch.log"//报错的信息写在这个文件里。

private static final String FILE_HOME = "F:/niceStore /"//要 *** 作的物理目录

public static void main(String[] args) {

try {

ArrayList<String>fileListInDB = new ArrayList<String>()

FileWriter fw = new FileWriter(LOG_FILE)

// TODO

// 取得DB连接,执行sql“SELECT DISTINCT FILEPATH FROM ARR-FILE”,得到一个ResultSet

// 从DB中取出文件信息,放入fileListInDB 中,

ResultSet rs = null

while (rs.next()) {

String path = rs.getString("File_Column")

File f = new File(path)

if (!f.exists()) {

// 不合法的报出错误信息。

System.out.println("file not exists: " + path)

fw.write("file not exists: " + path + "\n")

} else {

// 合法的,转化为路径名的规范路径名字符串,加入到fileListInDB中

fileListInDB.add(f.getCanonicalPath())

}

}

rs.close()

//

fw.write("\n\n\n\n")

//下面开始遍历物理目录

File home = new File(FILE_HOME)

Stack<File>tmpStack = new Stack<File>()

tmpStack.add(home)

while (!tmpStack.isEmpty()) {

File tmp = tmpStack.pop()

File[] childs = tmp.listFiles()

for (int i = 0i <childs.lengthi++) {

File child = childs[i]

if (child.isDirectory()) {

tmpStack.push(child)

} else {

if (fileListInDB.contains(child.getCanonicalPath())) {

fileListInDB.remove(child.getCanonicalPath())

} else {

// 删除文件。

child.delete()

// 这里的 *** 作如果把它移动到另一个目录里,作为备份,更好些。

fw.write("delete file: " + child.getCanonicalPath())

}

}

}

}

// 这个程序只考虑文件,不考虑目录

fw.close()

} catch (SQLException e) {

e.printStackTrace()

} catch (IOException e1) {

e1.printStackTrace()

}

}

}

*** 作步骤

1、新建一个文件夹,将要执行java程序(可使用eclipse导出的可执行的jar包)拷贝到该文件夹中;

2、将jdk中jre文件夹拷贝到要执行的java程序所在的文件夹;

3、在java程序所在的文件夹中新建一个bat文件。

bat文件样例:

样例一:

@echo off

set PATH=.%CD%\SocketAdapter_lib\jre\bin

set CLASSPATH=.

start java.exe -jar SocketAdapter.jar

@pause

样例二:

@echo off

start SocketAdapter_lib\jre\bin\java -jar SocketAdapter.jar

@pause

注:

可以在没有安装JRE的环境中,运行Java应用程序

java.exe 具体使用参见cmd中输入java -help

javaw.exe 相对于 java.exe 执行java程序过程中MS-DOS不可见

对于安装了JRE的环境中,第2步可以省略,bat文件如下

样例三:

@echo off

java -jar SocketAdapter.jar

@pause

在java程序目录路径下新建一个脚本文件,键入以下内容

@echo off

D:

cd D:\Personal\Desktop\WS

javac Demo.java

java Demo

pause

其中

D:\Personal\Desktop\WS是工程目录路径

Demo是程序名,作出相应的修改即可.


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

原文地址: https://outofmemory.cn/yw/7796892.html

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

发表评论

登录后才能评论

评论列表(0条)

保存