這是我一個真實的項目。發(fā)布批處理程序,結(jié)構(gòu)目錄如下:
10年積累的成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有衡東免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
data文件存放數(shù)據(jù),etc存放配置文件,lib,存放項目jar包,startup.bat/startup.sh啟動腳本。
1、-----windows上.bat文件調(diào)用java程序。bat文件內(nèi)容如下------
echo?off
rem?setup?classpath
echo?set?_CP=%%_CP%%;%%1?cp.bat
set?_CP=.;\classes;"%JAVA_HOME%\lib\dt.jar";"%JAVA_HOME%\lib\tools.jar"
for?%%i?in?(lib\*.jar)?do?call?cp.bat?%%i
set?CLASSPATH=%_CP%
del?cp.bat
echo?%CLASSPATH%
rem?set?JAVA_HOME=
set?JAVA_OPTION=-Dfile.encoding=GBK?-Xms256m?-Xmx256m?-XX:MaxPermSize=64m
set?RUN_CLASS=batch.Main
"%JAVA_HOME%\bin\java"?%JAVA_OPTION%?-classpath?%CLASSPATH%?%RUN_CLASS%
2、-------unix/linux上shell調(diào)用java程序,shello文件內(nèi)容如下---------
if?[?-z?${JAVA_HOME}?]
then
echo?"JAVA_HOME?not?set?yet,can't?run?java?program!"
exit?-1
fi
CLASSPATH=.:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jar
JLIBDIR=./lib
export?JLIBDIR
for?LL?in?`ls?${JLIBDIR}/*.jar`
do
CLASSPATH=${CLASSPATH}:${LL}
done
echo?${CLASSPATH}
export?CLASSPATH
JAVA_OPTION="-Dfile.encoding=GBK?-Xms256m?-Xmx256m?-XX:MaxPermSize=64m"
RUN_CLASS=batch.Main
${JAVA_HOME}/bin/java?${JAVA_OPTION}?-classpath?${CLASSPATH}?${RUN_CLASS}
操作步驟
1、新建一個文件夾,將要執(zhí)行java程序(可使用eclipse導(dǎo)出的可執(zhí)行的jar包)拷貝到該文件夾中;
2、將jdk中jre文件夾拷貝到要執(zhí)行的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的環(huán)境中,運行Java應(yīng)用程序
java.exe 具體使用參見cmd中輸入java -help
javaw.exe 相對于 java.exe 執(zhí)行java程序過程中MS-DOS不可見
對于安裝了JRE的環(huán)境中,第2步可以省略,bat文件如下
樣例三:
@echo off
java -jar SocketAdapter.jar
@pause
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 {
ArrayListString fileListInDB = new ArrayListString();
FileWriter fw = new FileWriter(LOG_FILE);
// TODO
// 取得DB連接,執(zhí)行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 {
// 合法的,轉(zhuǎn)化為路徑名的規(guī)范路徑名字符串,加入到fileListInDB中
fileListInDB.add(f.getCanonicalPath());
}
}
rs.close();
//
fw.write("\n\n\n\n");
//下面開始遍歷物理目錄
File home = new File(FILE_HOME);
StackFile tmpStack = new StackFile();
tmpStack.add(home);
while (!tmpStack.isEmpty()) {
File tmp = tmpStack.pop();
File[] childs = tmp.listFiles();
for (int i = 0; i childs.length; i++) {
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();
}
}
}
文章標(biāo)題:java代碼批處理文件,批量處理文件代碼
本文路徑:http://jinyejixie.com/article28/hsiojp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、用戶體驗、網(wǎng)站改版、網(wǎng)站設(shè)計、服務(wù)器托管、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)