Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    13

    [JAVA] Lanciare applicazioni nella cartella System32

    salve ho un'altro problema.
    vorrei lanciare un'applicazione situata nella cartella System32 di Windows.
    Se lancio tramite rt.exec applicazioni tipo cmd.exe o notepad funziona alla grande.
    Vorrei però utilizzare il file WFS.exe situato appunto in C:\Windows\System32.

    cosi funziona:
    String path = System.getenv("WINDIR");
    File system32 = new File(path + "\\System32");
    String cmd =system32 +"\\notepad.exe";
    Runtime.getRuntime().exec(cmd);

    ma in questo modo no:
    String path = System.getenv("WINDIR");
    File system32 = new File(path + "\\System32");
    String cmd =system32 +"\\WFS.exe";
    Runtime.getRuntime().exec(cmd);

    java.io.IOException: Cannot run program "C:\Windows\System32\wfs.exe": CreateProcess error=2, Impossibile trovare il file specificato

    grazie per l'aiuto!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    domanda (forse stupida): esiste il path specificato e hai i diritti di accesso/lancio?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    13
    notepad.exe e wfs.exe sono nella stessa cartella.
    Non so se dipende dai permessi su wfs.exe ma semrbano uguali a notepad.exe e il notepad lo posso lanciare.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    e la tua applicazione può lanciarli?

    l'errore sembra chiaro cmq

    codice:
    java.io.IOException: Cannot run program "C:\Windows\System32\wfs.exe": CreateProcess error=2, Impossibile trovare il file specificato
    non trova il file

    io nella mia installazione win non ho wfs.exe, ho visto che bisogna abilitarlo, guarda qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    13
    si ma se io lancio esegui o da start scrivo wfs.exe me lo trova e lo lancia.
    Inoltre se copio il file nella cartella c:\Windows o in qualsiasi altra cartella il file viene lanciato.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    e allora stampa tutto lo stacktrace e postalo

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    13
    java.io.IOException: Cannot run program "C:\Windows\System32\wfs.exe": CreateProcess error=2, Impossibile trovare il file specificato
    at java.lang.ProcessBuilder.start(ProcessBuilder.java :460)
    at java.lang.Runtime.exec(Runtime.java:593)
    at java.lang.Runtime.exec(Runtime.java:431)
    at java.lang.Runtime.exec(Runtime.java:328)
    at javaapplication10.Main.main(Main.java:46)
    Caused by: java.io.IOException: CreateProcess error=2, Impossibile trovare il file specificato
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
    at java.lang.ProcessImpl.start(ProcessImpl.java:30)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java :453)
    ... 4 more

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    mi sembra chiaro come errore, non trova il file

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,317
    Originariamente inviato da guns81
    si ma se io lancio esegui o da start scrivo wfs.exe me lo trova e lo lancia.
    Intendi scrivendo solo "wfs.exe"? Se è così molto probabilmente te lo lancia perchè il file è raggiungibile da uno dei percorsi inseriti nella variabile d'ambiente PATH. Questo non significa che il file si trovi per forza nella system32 di Windows...

    Inoltre se copio il file nella cartella c:\Windows o in qualsiasi altra cartella il file viene lanciato.
    Questa non l'ho capita bene.

    Ad ogni modo, prova a modificare il tuo codice in questo modo

    codice:
    String path = System.getenv("WINDIR");
    File system32 = new File(path + "\\System32");
    String cmd =system32 +"\\WFS.exe";
    
    File test = new File( cmd );
    if ( test.exists() ) {
       System.out.println("Il file " + test.getAbsolutePath() + " esiste e ora lo lancio");
       Runtime.getRuntime().exec(cmd);
    } else {
       System.out.println("Il file " + test.getAbsolutePath() + " non esiste.");
    }
    Compila, esegui e riporta ciò che viene stampato.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    13
    non avevo valutato le variabili d'ambiente.
    Avevo guardato però online e anche qui dicevano appunto che si trova nella cartella %WinDir%\System32\WFS.exe

    Il codice che mi hai postato te mi restituisce che il file non è presente ma allora come faccio a lanciarlo? nel percorso mi da : C:\Windows\System32


    che alternative ho per lanciare un'applicazione per fare la scansione di un documento?
    grazie per le risposte!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.