Newsgroup: it.comp.java
Titolo: Applet - Problemi di accesso alle SerialPort

Salve a tutti.
Sto cercando di scrivere un'applet che acceda alla porta seriale.
Dopo aver tribolato su "dove" mettere le librerie (lib\ext), finalmente
qualche cosa va.
Pero', configurata come un'applicazione esegue correttamente ed
effettivamente "CIAO" esce dalla COM1; se la provo come applet, niente
piu' che uno sconsolante "NoPort".
Quindi problemi di ricerca librerie/driver/... dovrebbero essere
sistemati.
Ritengo che sia un problema di permessi, ma dando <AllPermission> non
dovrebbe avere piu' nessuna limitazione, o no?
Ho anche provato a firmarla, non cambia nulla.
Come faccio a farle vedere le porte seriali ?
L'unica cosa che non ho provato e' loggarmi come Administrator, ma
comunque il mio account ha tutti gli accessi alle risorse della
macchina.
Qualcuno ha qualche idea o qualche trucco da suggerire?
Ringrazio fin d'ora per l'attenzione.
Configurazione
---------------
Windows 2000
JDK 1.5.0-06
CommAPI 2.0
set CLASSPATH=.;\programmi\java\jdk1.5.0_06\lib;
		\programmi\java\commapi;
		\programmi\java\commapi\comm.jar
set JAVA_HOME=\programmi\java\jdk1.5.0_06
set JAVA_LIB=\programmi\java\jdk1.5.0_06\lib
policy file: 
my.jp
-------------------
	grant {
	  permission java.security.AllPermission;
	};
Run
----
$> \programmi\java\jdk1.5.0_06\bin\javac Main.java
$> \programmi\java\jdk1.5.0_06\bin\appletviewer
-J-Djava.security.policy=
my.jp
 p.html
<HTML>
<HEAD><TITLE> Hello World </TITLE></HEAD>
<BODY>
This is the applet:<P>
<APPLET code="Main.class" width=200 height=200 ></APPLET>
</BODY>
</HTML>
Codice applet
--------------
import java.applet.*;
import java.util.Enumeration;
import java.awt.*;
import java.io.*;
import javax.comm.*;
/**
 * @author m-cavalli
 */
public class Main extends Applet {
    static String message = "CIAO";
    public void init() {}
    public void stop() {}
    public void paint(Graphics g) {
    //public static void main(String[] args) {
    try {
        CommPortIdentifier id_porta;
	Enumeration ports;
	ports = CommPortIdentifier.getPortIdentifiers();
	int i=0;
      	g.drawString("pp",10,20*(i+1));
      	//System.out.println("pp");
	while (ports.hasMoreElements() && i<2) {
		id_porta = (CommPortIdentifier)ports.nextElement();
      		g.drawString(id_porta.getName(),20,20*(i+1));
		//System.out.println(id_porta.getName());
		i ++;
	}
        id_porta = CommPortIdentifier.getPortIdentifier("COM1");
        SerialPort porta = (SerialPort)id_porta.open("Main",2000);
        OutputStream out = porta.getOutputStream();
        porta.setSerialPortParams(9600,
                SerialPort.DATABITS_8,
                SerialPort.STOPBITS_1,
                SerialPort.PARITY_NONE);
        out.write(message.getBytes());
        }
        catch (NoSuchPortException ne) {
        g.drawString("NoPort",10,10);
        //System.out.println("NoPort");
        }
        catch (PortInUseException pe) {
        g.drawString("UsedPort",10,10);
        //System.out.println("UsedPort");
        }
        catch (UnsupportedCommOperationException ue) {
        g.drawString("Unsupported",10,10);
        //System.out.println("Unsupported");
        }
        catch (IOException ie) {
        g.drawString("io",10,10);
        //System.out.println("io");
        }
	g.drawString("Hey hey hey",20,80);
	g.drawString("Hello World",20,60);
	//System.out.println(message);
    }
 
}

ciao scusa non so come risovere il tuo problema ma anche io vorrei fare
la stessa cosa ossia un applet che utilizzi la seriale
come hai scritto tu il primo passo e creare un programma(non un applet)
e per fare quello ho scaricato il package 
javax.com
ho avuto qualche problema nel reperire le java comunication api per
windows ma alla fine ci sono riuscito.
ho il pacage ma dove devo mettere le dll varie??
ho anche qualche esempio ma se provo a compilare non trova i package
quindi non posso fare nulla

 per altri
suggerimenti su dove mettere le librerie
Per quel che mi riguarda, alla fine ho decisamente abbondato, e alla
fine di tutte le prove mi ritrovo con
./jdk1.5.0_06/jre/lib/ext/javax.comm.properties
./jdk1.5.0_06/jre/lib/javax.comm.properties
./jdk1.5.0_06/lib/javax.comm.properties
./jre1.5.0_06/lib/ext/javax.comm.properties
./jre1.5.0_06/lib/javax.comm.properties
./jdk1.5.0_06/jre/bin/comm.jar
./jdk1.5.0_06/jre/lib/comm.jar
./jdk1.5.0_06/jre/lib/ext/comm.jar./jdk1.5.0_06/bin/win32com.dll
./jdk1.5.0_06/jre/bin/win32com.dll
./jre1.5.0_06/bin/win32com.dll
./jdk1.5.0_06/lib/comm.jar
./jre1.5.0_06/bin/comm.jar
./jre1.5.0_06/lib/comm.jar
./jre1.5.0_06/lib/ext/comm.jar
Spero di esserti stato utile