J'ai obtenu un vidage de la table en donnant un coup de pied à ShellScript sur le serveur avec une fonction supplémentaire Je ne l'ai jamais fait en Java, alors je vais l'écrire J'ai utilisé cette personne comme référence Ici, exécutez le ShellScript de RenumberData.sh dans / home / dev / sample / work / sh /
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
yobidashi.java
CallProcess sh = new CallProcess();
sh.doBackupTable("RenumberData");
CallProcess
CallProcess.java
package mr.yappy;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import sample.core.log.Logger;
/**
*Classe de traitement d'exécution de script Shell
* @param shName Nom du shell d'exécution
* @author yappy
* @version 1.0.0
*/
public class CallProcess {
private Logger log = Logger.getLogger("aaa");
public void doBackupTable(String shName) {
Process process = null;
InputStream inputS = null;
InputStreamReader isReader = null;
BufferedReader bReader = null;
String text = "";
try {
//Spécifiez le chemin sur le serveur
String shPath = "/home/dev/sample/work/sh/";
ProcessBuilder pb = new ProcessBuilder("sh", shPath + shName + ".sh");
// /home/dev/sample/work/sh/RenumberData.courir sh
process = pb.start();
//inputS = process.getInputStream();
inputS = process.getErrorStream();
//isr = new InputStreamReader(inputS, "Shift-JIS");
isReader = new InputStreamReader(inputS, "UTF-8");
bReader = new BufferedReader(isReader);
StringBuilder builder = new StringBuilder();
String c = "";
while ((c = bReader.readLine()) != null) {
//Écriture des résultats d'exécution
builder.append(c);
}
//Résultat d'exécution
text = builder.toString();
//Fin
process.waitFor();
//Obtenir l'état du traitement
int ret = process.exitValue();
if (ret == 0) {
//Réussite
} else {
//Terminaison anormale
log.error("error result : " + text);
}
} catch (IOException | InterruptedException e) {
log.error(e,e);
} finally {
//Divers ferme
if (process != null) {
process.destroy();
}
if (inputS != null) {
try {
inputS.close();
} catch (IOException e) {
log.error(e,e);
}
}
if (isReader != null) {
try {
isReader.close();
} catch (IOException e) {
log.error(e,e);
}
}
if (bReader != null) {
try {
bReader.close();
} catch (IOException e) {
log.error(e,e);
}
}
}
}
}