Ausführen Befehl cmd im Java-Applet

Ich versuche ausführen Befehl cmd im Java-applet, ich habe versucht, diesen code

import java.io.InputStream;
import java.io.IOException;
import java.applet.Applet;
import java.awt.*;
public class execute extends Applet{
String output="";
public void init(){ 
try {
//Execute command
String command = "MYCMDCOMMAND";
Process child = Runtime.getRuntime().exec(command);
//Get the input stream and read from it
InputStream in = child.getInputStream();
int c= in.read();
while ((c = in.read()) != -1) {
output =output+((char)c);
}
in.close();
}   
catch (IOException e) {
}
System.out.println(output);
}
public void paint(Graphics g){
g.drawString(output,60,100);
}
}

Und schrieb dann diese html-Datei und speichert diese im selben Verzeichnis:

<html>
<head><title>Applet</title>
<body>
<applet code="execute.class",height="200" width="200">
</body>
</html>

Was ich versuche zu tun, ist die Ausführung des ls-shell-Befehl in einem applet und zeigt die Ergebnisse an.

Der code wird kompiliert ohne Fehler. Aber wenn ich öffnen Sie die html-Datei im browser, bekomme ich nur ein graues Quadrat.

Ist dies wegen der Sicherheit-Probleme, ich bekomme gar nichts? Oder ist es, weil ein Fehler im code?

  • Ich weiß nicht, ob das, was Sie versuchen zu tun, ist legal für applets, vor allem unsigned diejenigen, die aufgrund Ihrer sandbox-Einschränkungen Auch, dein code scheint nicht zu respektieren Swing-threading-Regeln. Auch Ihre fehlende Fehler zu fangen ist ziemlich gefährlich.
  • Die kurze Antwort ist NICHT. Der ganze Sinn von applets ist, Sie haben eine sehr eingeschränkte Rechte auf die end-user-system, das ausführen von externen Kommandos ist den meisten trotzig da oben ein massives Sicherheitsproblem. Verwenden Sie eine dedizierte Anwendung und so etwas wie Java Web Start bereitstellen. Sie sind immer noch auf die Sicherheitsprobleme haben, aber diese bieten eine saubere Lösung für Kunden
  • 1) "Ist dies wegen der Sicherheit-Probleme, ich bekomme gar nichts?" Die Antwort auf diese Frage melden würde in der Java-Konsole. 2) Als Allgemeinen Tipp, ändern catch (IOException e) { } zu catch (IOException e) { e.printStackTrace(); } 3) Der HTML-Code fehlerhaft ist, überprüfen Sie es mit einem validation service.
InformationsquelleAutor user198989 | 2012-10-17
Schreibe einen Kommentar