He creado un programa en java que se comunica con arduino para saber la temperatura, en netbeans funciona bien pero al crear el jar y pasarlo a exe deja de funcionar el audio que indica la temperatura. He utiizado 2 metodos diferentes por si era el problema y el audio esta en carpeta de audio y directamaente donde se crea la clase principal
Código Java:
Ver original
int DatoEntrada; SerialPort serialPort; private static final int TIME_OUT = 2000; private static final int DATA_RATE = 9600; boolean estado = true; /** * Creates new form conectar */ public conectar() { initComponents(); ArduinoConnection(); esperar(); EnviarDatos("a"); } public void esperar(){ try{ { } } //esperar(); try { Output.write(data.getBytes()); } } int Outputs = 0; Outputs = Input.read(); return Outputs; } public synchronized void serialEvent(SerialPortEvent oEvent) { while (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) { try { int datos; //Se declaran las variables datos = RecibirDatos(); //Se lee los datos en el puerto serie if (datos > 0) { //Si el valor leido es mayor a 0... Mensaje = Mensaje + (char) datos; //Se acumula el mensaje if (Mensaje.charAt(Mensaje.length() - 1) == ',') { //Cuando se recibe la coma //el mensaje ha llegado a su final, por lo que se procede a imprimir //La parte ENTERA de la humedad. Se busca el punto, donde quiera que esté //y se transforma de String a entero // Mensaje = ""; //Se limpia la variable y se prepara para nueva lectura /// if (distan<21 & distan>18){ // daleplay("i3"); // } switch(distan){ case 20: pay("20"); esperar(); //System.exit(0); break; case 18: pay("18"); esperar(); //System.exit(0); as.setText("18"); break; case 19: pay("19"); esperar(); //System.exit(0); break; case 17: pay("17"); esperar(); as.setText("17"); //System.exit(0); break; case 21: daleplay("21"); esperar(); break; case 22: daleplay("22"); esperar(); break; case 23: daleplay("23"); esperar(); break; case 24: daleplay("24"); esperar(); break; case 25: daleplay("25"); esperar(); break; case 26: daleplay("26"); esperar(); break; case 27: daleplay("27"); esperar(); break; case 28: daleplay("28"); esperar(); break; case 29: daleplay("29"); esperar(); break; } Mensaje = ""; //Se limpia la variable y se prepara para nueva lectura } } } } } public void ArduinoConnection() { CommPortIdentifier portId = null; while (portEnum.hasMoreElements()) { CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement(); if (PORT_NAME.equals(currPortId.getName())) { portId = currPortId; estado = true; break; } } if (portId == null) { return; } try { serialPort = (SerialPort) portId.open(this.getClass().getName(), TIME_OUT); serialPort.setSerialPortParams(DATA_RATE, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); Output = serialPort.getOutputStream(); Input = serialPort.getInputStream(); serialPort.addEventListener((SerialPortEventListener) this); serialPort.notifyOnDataAvailable(true); } } { try { clip.open(AudioSystem.getAudioInputStream( getClass().getResourceAsStream( ruta + value +".wav" ) ) ); clip.start(); } } InputStream path; path = getClass().getResourceAsStream(value+ ".wav"); try { sonido.start(); } { }}