# Applet funktioniert nicht nach Signatur



## chrissy (4. Sep 2007)

Hallo,

ich habe ein kleines Problem. Seit geraumer Zeit überlege ich, wie ich ein Programm auf meinem PC von Firefox aus starten kann.
Nach einigen Überlegungen habe ich mich entschlossen, so kurz mal nebenbei ein Applet dafür zu schreiben, weil das kann ja nicht soooooooo schwer sein :wink: 
Leider ist es mein erstes Applet und es ist doch etwas schwieriger geworden als geglaubt.  :cry: 

1. Ich habe folgenden Java Code:

```
package radmin;

import java.applet.Applet;

public class RunRAdmin extends Applet
{
  public RunRAdmin()  {  }

  private void jbInit(String path)
    throws Exception
  {
    Runtime.getRuntime().exec(path);
  }

  public void init()
  {
    try
    {
      String path = getParameter("pathExec");
      if (path == null) path = "C:/Programme/Radmin Viewer 3.0/Radmin.exe";
      jbInit(path);
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }

  public static void main(String[] args)
  {
    RunRAdmin applet = new RunRAdmin();
    applet.init();
    applet.start();
  }
}
```

Das ganze funzt auch ganz gut, wenn ich das getParamter weglasse. Sowohl in der Konsole als auch im JDeveloper (meiner Entwicklungsumgebung).

Nun habe ich folgenden HTML-Code:

```
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Neue Seite 1</title>
</head>
<body>
<APPLET CODEBASE = "../AppletTest"
ARCHIVE = "Radmin.jar"
CODE = "radmin.RunRAdmin.class"
NAME = "RADMIN"
WIDTH = "0%"
HEIGHT = "0%"
HSPACE = "0"
ALIGN = "middle">
<PARAM NAME="path" VALUE="C:/Programme/Radmin Viewer 3.0/radmin.exe">
</APPLET>
</body></html>
```

Ergebnisse: Ich muss das JAR wohl signieren, da eine Access denied Meldung in der Java-Konsole kam.
Dank des tollen Forums und dem super Skript scheint das funktioniert zu haben, zumindest stand am Ende "JAR signiert".
Danach habe ich mein neues JAR und das HTML in einen Ordner geschmissen und das ganze wieder gestartet. Nun bekomme ich in der Statuszeile des Browser ein APPLET notinited und in der Java-Konsole eine Fehlermeldung, daß er meine radmin.RunAdmin.class nicht mehr findet.
Muss ich denn die Class-Datei auch nochmal extra in das Verzeichnis kopieren, wenn da schon die JAR ist??? Ich weiß, daß es hier schon so einige Threads gibt, aber irgendwie blick ich es einfach nicht.   

Wäre echt nett, wenn mir nochmal jemand auf die Sprünge helfen könnte.

Danke
chrissy


----------



## chrissy (7. Sep 2007)

Hallo, 

Jetzt hab ich mein Applet signiert bekommen und es wird auch gestartet.
Leider habe ich immer noch Probleme beim Ausführen.

Mein Java:

```
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;

import java.io.IOException;

import javax.swing.JApplet;

public class Run
  extends JApplet
{
  public Run()
  {
  }

  public void runCommand(String pCommand)
  {
    String result ="";
    try
    {
      Process p = Runtime.getRuntime().exec(pCommand);  
    } 
    catch (IOException e) 
    {
      result = "Exception in runCommand:"+e.getMessage();
      System.out.println(result);
      e.printStackTrace();
    }     
  }

  public static void main(String[] args)
  {
    Run applet = new Run();
    applet.init();
    applet.start();
  }
}
```

und mein HTML

```
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Neue Seite 1</title>
<script type="text/javascript">
function runCommand()
{
   if (document.all) document.oRunnerIE.runCommand('notepad.exe');
   else document.oRunnerFF.runCommand('notepad.exe');

}
</script>
</head>

<body>

      <object classid="java:Run.class" 
              type="application/x-java-applet"
              archive="RunCommand.jar" 
              name="oRunner" id="oRunnerFF"
              height="100" width="100">
        
        <param name="archive" value="RunCommand.jar" />
      
         
        <object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" 
                codebase="http://java.sun.com/update/1.5.0/jinstall-1_5_0-windows-i586.cab"
                name="oRunner" id="oRunnerIE"> 
          <param name="code" value="Run" />
          <param name="archive" value="RunCommand.jar" />
          [b]
            This browser does not have a Java Plug-in.
            

            <a href="http://java.sun.com/products/plugin/downloads/index.html">
              Get the latest Java Plug-in here.
            </a>
          [/b]
        </object> 
      
      </object>
      
<input type="button" value="Test" onclick="runCommand();">
</body></html>
```

Leider bekomme ich nun im FF folgenden Fehler: "uncaught exception: internal error: Can't get Java class name usingjava.lang.Class.getName()" und im IE: "java.security.AccessControlException: access denied (java.io.FilePermission <<ALL FILES>> execute)".  

Kann mir bitte bitte jemand sagen, was ich falsch mache, liegt's am Java oder HTML??? 

chrissy


----------



## Der_Dude (11. Sep 2007)

mhhh versuch mal die Dateiattribute (Zugriffsrechte) zuändern ava.io.FilePermission <<ALL FILES>> execute


----------



## chrissy (12. Sep 2007)

Hi Dude, 

du meinst die Dateiattribute von der Datei die ich ausführen möchte? Da habe ich Vollzugriff ...
Mittlerweile läuft das Applet, wenn ich einen meinen Befehl als Parameter übergebe und nicht über JavaScript versuche auf das Applet zuzugreifen.
Ich verstehe zwar nicht, was bei den Zugriffsrechten anders ist, aber so funktionierts.

chrissy


----------

