Нужна помощь в запуске рекурсивного прикосновения из Java JSP - PullRequest
0 голосов
/ 03 мая 2011

Есть ли в Java способ использования метода exec для выполнения рекурсивного касания?

Цель состоит в том, чтобы настроить простую веб-страницу, которая при перезагрузке будет касаться каталога для сайта, чтобы дизайн мог гарантировать кэшированиебольше не происходит.Любая помощь, пожалуйста !!!

Вот то, что у меня есть до сих пор, и не работает в моем JSP:

<%@ page import="java.io.BufferedReader,java.io.File,java.io.FileWriter, java.io.IOException, java.io.InputStreamReader, java.util.Map" %>

<%


String s = null;
// system command to run
String cmd = "find /home/abcdefg/ -exec touch {} \\;";
// set the working directory for the OS command processor
File workDir = new File("/home/ss/public_html/ss");

try {
Process p = Runtime.getRuntime().exec(cmd, null, workDir);
int i = p.waitFor();
if (i == 0){
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
// read the output from the command
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
}
else {
BufferedReader stdErr = new BufferedReader(new InputStreamReader(p.getErrorStream()));
// read the output from the command
while ((s = stdErr.readLine()) != null) {
System.out.println(s);
}

}
}
catch (Exception e) {
System.out.println(e);
}


%>

Ответы [ 3 ]

1 голос
/ 03 мая 2011

Попробуйте разделить аргументы команды:

// system command to run
String[] cmd = {"find","/home/abcdefg/","-exec","touch","{}",";"};
1 голос
/ 03 мая 2011

Вы действительно хотите прикоснуться к файлам в /home/abcdefg?Я мог бы представить, что вы хотите коснуться всех файлов в /home/ss/public_html/ss.Если это так, вы должны изменить команду поиска:

String cmd = "find /home/ss/public_html/ss -exec touch {} \\;"
0 голосов
/ 04 мая 2011

Все по тому же пути - я разобрался с ответом, и он близок к тому, что вы, ребята, отправили:

<% String [] cmd = {"/ bin / sh", "-c","cd / xx / xx / xx / xx; найти. -exec touch {} \;"};Процесс p = Runtime.getRuntime (). Exec (cmd);%>

Спасибо, ребята, за быстрый ответ !!

Даниэль

...