# Benutzername auslesen



## darko m. (26. Oktober 2005)

Hallo

Ich hab ein Problem. 
Und zwar kann ich den Benutzernamen nicht mit einem Applet anzeigen lassen.


```
import java.awt.Graphics;
import java.applet.Applet;
import java.io.FileInputStream;
import java.util.Properties;

public class username extends Applet
{
 static String benutzer;

 public static void main(String[] args) throws Exception 
 {
  benutzer = new Properties(System.getProperties()).getProperty("user.name");
 }
  public void paint(Graphics g)
  {
   g.drawString(""+benutzer,50,20);
  }
}
```

Bei der ausgabe erscheint bei mir "NULL" im Applet.
Wenn ich es in der Commandozeile ausgebe gibt er den Benutzernamen an.
(Das ist mein erstes Javaprogramm. Habe keine Ahnung von Java.)


----------



## schnuffie (26. Oktober 2005)

Wenn's kein Applet wäre, würd's auch so gehen:


```
String s = System.getProperty("user.name");
```
 
In Deinem Applet mußt Du die Applet-Methoden benutzen. Ändere Deinen Code entsprechend:


```
public class Username extends Applet {
 
public void init() {
  Label l = new Label(System.getProperty("user.name");
  this.add(l);
}
 
}
```


----------



## darko m. (26. Oktober 2005)

Hm...
Wie muss ich den Code genau anpassen?
Komme irgendwie nicht nach.


----------



## schnuffie (26. Oktober 2005)

Das 2. Codefenster ist der (komplette) Beispiel-Code. :-(


----------



## darko m. (26. Oktober 2005)

Ok.
Aber da bekomme ich diese Meldung.
------------------
C:\>javac username.java
username.java:26: ')' expected
  Label l = new Label(System.getProperty("user.name");
                                                     ^
1 error
------------------

Dann habe ich noch eine Klammer hinzugefügt.

```
public class username extends Applet 
{
 public void init() 
 {
  Label l = new Label(System.getProperty("user.name"));
  this.add(l);
 }
```
}

------------------
username.java:26: cannot find symbol
symbol  : class Label
location: class username
  Label l = new Label(System.getProperty("user.name"));
                ^
2 errors
------------------


----------



## darko m. (26. Oktober 2005)

Ok.
Jetzt habe ich es geschaft zu kompilieren.
Aber er zeigt das Applet nicht an.  
Er bringt die Meldung:
"Ausnahme: java.security.AccessControlException: access denied(java.util.Property user.name read)"


----------



## schnuffie (26. Oktober 2005)

Wie lange programmierst Du schon? Kennst Du die Grundlagen schon? Hast Du das "HalloWelt"-Beispiel schon erfolgreich probiert? 

Ich habe das Gefühl, Dir fehlen noch die elementarsten Grundlagen.

Ohne Imports kommst Du meist nicht weit. Du hattest bislang Glück, nur mit dem Package java.lang.* gearbeitet zu haben, dort muß man nichts importieren, denn dieses Package hält SUN für so wichtig, daß es bereits standardmäßig importiert ist.

Füge Deiner Klasse den Import zum Label hinzu.  API-Doku


----------



## schnuffie (26. Oktober 2005)

Aha, hast den Import also schon vorgenommen.  

Die Exception "java.security.AccessControlException" kommt deshalb, weil Du höchstwarscheinlich aufgrund der Sandbox suchen: ) kein Recht hast, bei einem Applet den Usernamen auszulesen.



> This exception is thrown by the AccessController to indicate that a requested access (to a critical system resource such as the file system or the network) is denied.


----------



## Thomas Darimont (26. Oktober 2005)

Hallo!

 Schnuffi hat recht. Du musst das Applet dazu erst signieren.
 Siehe dazu:
http://java.sun.com/j2se/1.5.0/docs/guide/plugin/developer_guide/security.html

 Gruss Tom


----------

