2016-12-30 4 views
0

Derzeit verwende ich diese Methode:Wie führe ich den Befehl cmd über ein Netbeans-Projekt aus?

import java.io.*; 
import com.sun.speech.freetts.*; 
import javax.swing.JOptionPane; 

public class SO 
{ 
    public void Open(String siteLink) 
    { 
     try 
     { 
      Process p = Runtime.getRuntime().exec("cmd /c start "+siteLink); 
     } 
     catch(Exception e) 
     { 
      JOptionPane.showMessageDialog(null,"Error"+e); 
     } 
    } 
} 

das war meine Java-Klasse. i in den Hauptrahmen Quelle und tippte:

SO run = new SO(); 
run.Open("file:///G:\\Abhijeet\\Videos\\"); 

diese Ordner Videos eröffnet aber diese Methode die EXE-Dateien oder Windows-Anwendungen nicht starten.

Ich habe sogar versucht mit 'explorer =', um meine Computer zu starten, aber nichts passierte.

Antwort

0

Ich bin wirklich nicht sicher, was Sie versuchen zu tun, aber der bevorzugte Weg, um eine URL zu öffnen, ist wahrscheinlich Desktop-# browse (Dokumentation: https://docs.oracle.com/javase/7/docs/api/java/awt/Desktop.html#browse(java.net.URI))

Für ein Programm gestartet wird, würde ich Desktop-# verwendet offen (Dokumentation: https://docs.oracle.com/javase/7/docs/api/java/awt/Desktop.html#open(java.io.File))

Auch, während Sie gerade dabei sind - Machen Sie etwas Forschung in der Befehlszeilen-Injektion. Wenn irgendeine Form von Variable verwendet wird, kann der Benutzer sie leicht ausführen lassen. Oder Sie könnten versehentlich ein Zeichen verwenden, das einen Fehler verursacht. Wenn Sie in diesem Fall weiterhin darauf bestehen, Runtime # exec zu verwenden, sehen Sie sich die an, die einen String [] benötigt.
Dann würden Sie am wahrscheinlichsten new String[]{"cmd", "/c", "start", siteLink} tun.

+0

Danke, und ich werde bald auf der Befehlszeile Injektion sein. –

Verwandte Themen