View Full Version : Java, mi servono 2 risposte
1- Mi serve una classe del tipo "cerca file" che mi cerchi in tutto un disco fisso un file.
2- Con che comando posso far riavviare il sistema (supponendo che sia windows)?
grazie
Tassadar
22-11-2002, 08:16
Per la prima: te la devi fare :)
Per la seconda: dubito che tu riuscirai a farlo
Non è detto che tu debba fartela :D Caso vuole che ho giusto realizzato un'applicazioncina didattica atta allo scopo (Fra l'altro si chiama prorio CercaFiles :D ).
E' un po' più complessa, ma facilmente adattabile al tuo scopo, o almeno tu puoi prendere sicuramente spunto...
La seconda: mmm... non so se sia fattibile...perchè dovresti poi??
per la seconda puoi fare una chiamata esterna a un programmino che si chiama shutdown.exe (cerca su internet).
altrimenti se nelle api di windows (sono ignorantissimo in materia) esiste la maniera di farlo puoi scriverti un wrapper jni per chiamarle
Tassadar
22-11-2002, 11:45
adesso che mi vien in mente mi sembra che tu possa chiamare rundll32.exe con dei paramtri per restartare il systema, cerca su google :)
Per arrestare WindowXP e 2000 (scrivo un metodo intero ma la parte "interessante" è solo il contenuto della stringa powerOffCommand)
import java.io.*
...
public void powerOff() {
String powerOffCommand="tsshutdn 01 /powerdown /delay:01";
Runtime runtime=Runtime.getRuntime();
Process powerOffProcess;
try {
powerOffProcess=runtime.exec(powerOffCommand);
} catch (IOException ioEx) {
System.out.println("Exception caught:"\n+IOException);
}
}
Per riavviare Windows XP sostituisci la stringa powerOffCommand con
"shutdown -r -t 01"
tsshutdn.exe è un programma standard contenuto sia in Windows 2000 che in Windows XP
shutdown.exe dovrebbe essere solo per XP.
Ho provato entrambe le soluzioni è funzionano (S.O. WindowsXP Home Edition).
Ciao.
Originariamente inviato da PGI
[B]Per arrestare WindowXP e 2000 (scrivo un metodo intero ma la parte "interessante" è solo il contenuto della stringa powerOffCommand)
import java.io.*
...
public void powerOff() {
String powerOffCommand="tsshutdn 01 /powerdown /delay:01";
Runtime runtime=Runtime.getRuntime();
Process powerOffProcess;
try {
powerOffProcess=runtime.exec(powerOffCommand);
} catch (IOException ioEx) {
System.out.println("Exception caught:"\n+IOException);
}
}
Per riavviare Windows XP sostituisci la stringa powerOffCommand con
"shutdown -r -t 01"
tsshutdn.exe è un programma standard contenuto sia in Windows 2000 che in Windows XP
shutdown.exe dovrebbe essere solo per XP.
Ho provato entrambe le soluzioni è funzionano (S.O. WindowsXP Home Edition).
Ciao.
ti ringrazio, verifico subito
una domanda: ma runTime.exec("parametro") e' la stessa cosa che fare un file .bat con rundll32 parametri....
giusto?
cosa posso fare eseguire con runTime.exec??
in pratica puoi lanciare tutti i programmi che puoi avviare da una riga di comando dos.
Intercettando i flussi di input e output dell'oggetto process creato dal metodo runtime.exec() puoi andare anche più in là ma non so quanto.
Personalmente ho provato solo a ridirigere i messaggi di errore del compilatore javac dalla finestra dos ad una TextArea (ho fatto una specie di notepad con compilatore java);
C'è da chiedersi però se sia possibile, ad esempio, intercettare il flusso di output di Word o che altro.
Non so a che servirebbe però :)
Ciao.
Originariamente inviato da PGI
[B]Per riavviare Windows XP sostituisci la stringa powerOffCommand con
"shutdown -r -t 01"
tsshutdn.exe è un programma standard contenuto sia in Windows 2000 che in Windows XP
shutdown.exe dovrebbe essere solo per XP.
Ho provato entrambe le soluzioni è funzionano (S.O. WindowsXP Home Edition).
Io non ne ho nemmeno uno di questi programmi su Windows 2000...
Ho controllato (alla faccia della fiducia mi dirai :D ) ed hai ragione, tssutdn.exe è presente nella versione server di Windows 2000
support.microsoft.com/default.aspx?scid=kb;en-us;243202 (http://support.microsoft.com/default.aspx?scid=kb;en-us;243202)
Lo stesso vale per shutdown.exe
http://support.microsoft.com/default.aspx?scid=kb;en-us;317371
Entrambe le applicazioni sono invece presenti in Windows XP
Ciao.
Se ti interessa ancora...
void cercaFile(File f){
System.out.println(f.getAbsolutePath());
if (f.isFile()){
numFiles++;
//System.out.println("File!");
if(f.getName().equals("il file da cercare")){
// System.out.println("Trovato!");
dataVector.addElement(f);
}
}
else if (f.isDirectory()){
//System.out.println("Dir!");
numCartelle++;
String[] lista = f.list();
if (lista!=null){
for(int i=0;i<lista.length;i++){
File myfile = new File(f,lista[i]);
cercaFile(myfile);
}
}
else{
//System.out.println("Vuota!");
}
}
else
System.out.println("BHO???");
}
dataVector è destinato a contenere i file trovati, potrebbero essere n... La procedura è ricorsiva, devi passargli una directory da cui cominciare...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.