Ciao sto scrivendo un applet che dovrebbe leggere dei dati dalla porta seriale utlizzando il package javacomm, ho provato prima a scrivere un semplice programma che mi visualizzasse le porte disponibili , il punto è questo, che se lancio la classe come applicazione funziona , se invece la lancio come applet non funziona,
la classe è questa :

codice:
import javax.comm.*;
import java.io.*;
import java.util.*;

public class SerClass implements SerialPortEventListener{
	InputStream in ;
	public static void main(String[] args){
		Enumeration enport = CommPortIdentifier.getPortIdentifiers();
		CommPortIdentifier idPorta = null;
		if(!enport.hasMoreElements()){
			System.out.println("Nessuna porta seriale trovata !");
		}
		while(enport.hasMoreElements()){
			CommPortIdentifier pid = (CommPortIdentifier)enport.nextElement();
			System.out.println("Trovata porta : " + pid.getPortType() + " Nome : " + pid.getName());					
		}
	}
	public void serialEvent(SerialPortEvent event) { 
         switch(event.getEventType()) {
	 case SerialPortEvent.BI:
	 case SerialPortEvent.OE:
	 case SerialPortEvent.FE:
	 case SerialPortEvent.PE:
	 case SerialPortEvent.CD:
	 case SerialPortEvent.CTS:
	 case SerialPortEvent.DSR:
	 case SerialPortEvent.RI:
	 case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
	 break;
	 case SerialPortEvent.DATA_AVAILABLE:
	  byte[] readBuffer = new byte[20];
	  try {
	    while (in.available() > 0){
	      int numBytes = in.read(readBuffer);
	   } 
	   //System.out.print(new String(readBuffer));
	  }
	  catch (IOException e) {}
	  break;
	 }
	}	
}
Per visualizzarla sto scrivendo on eclipse , che "dovebbe" impostare i premessi in automatico ,
il codice dell'applet è questo :

codice:
import java.applet.Applet;
import java.io.*;
import java.awt.*;
import javax.comm.*;
import java.util.*;
import javax.swing.*;


public class MyApplet extends Applet implements SerialPortEventListener {
	private InputStream in;
	private String logPorte ;

	public void leggiPorte(){
		Enumeration enport = CommPortIdentifier.getPortIdentifiers();
		CommPortIdentifier idPorta = null;
		if(!enport.hasMoreElements()){
			logPorte = "Nessuna porta seriale trovata !";
		}
		while(enport.hasMoreElements()){
			CommPortIdentifier pid = (CommPortIdentifier)enport.nextElement();
			logPorte += "Trovata porta : " + pid.getPortType() + " Nome : " + pid.getName();					
		}
	}
	
	public void paint(Graphics g)
	  {
	    g.setColor(Color.blue);
	    g.drawString("Applet WriteToDiskApplet", 120, 120);
	    g.setColor(Color.RED);  
	    g.drawString(logPorte, 100, 100);
	  }
	public void init(){
		leggiPorte();
	}

	public void serialEvent(SerialPortEvent event) {
		switch(event.getEventType()){
			case SerialPortEvent.BI :
			case SerialPortEvent.OE :
			case SerialPortEvent.FE :
			case SerialPortEvent.PE :
			case SerialPortEvent.CD :
			case SerialPortEvent.CTS :
			case SerialPortEvent.DSR :
			case SerialPortEvent.RI :
			case SerialPortEvent.OUTPUT_BUFFER_EMPTY :
			break ;
			case SerialPortEvent.DATA_AVAILABLE :
				byte[] readBuffer = new byte[20];
				try{
					while(in.available() > 0){
						int numBytes = in.read(readBuffer);
					}
					//System.out.println(new String(readBuffer));
				}
				catch(IOException e){
					e.printStackTrace();
				}
				break;
		}		
	}
}
La classe viene compilata come applet ma eclipse da questi errori al runtime

java.lang.NullPointerException: name can't be null
at java.io.FilePermission.init(Unknown Source)
at java.io.FilePermission.<init>(Unknown Source)
at java.lang.SecurityManager.checkDelete(Unknown Source)
at javax.comm.CommPortIdentifier.getPortIdentifiers(C ommPortIdentifier.java:70)
at MyApplet.leggiPorte(MyApplet.java:39)
at MyApplet.init(MyApplet.java:58)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

C'è qualcosa legata ai permessi che devo controllare ?

Spero qualcuno possa aiutarmi ...
ciao a tutti