tsseh schrieb:
classpath, aber das sollte eclipse vermutlich schon eingetragen haben
Habs über ein Plugin gelöst Fat-jar:
Fat Jar Eclipse Plug-In
Aber mein Projekt funktioniert nicht mehr.
Habe diesen code in der Klasse com:
Code:
import java.net.InetSocketAddress;
import org.java_websocket.WebSocket;
import org.java_websocket.handshake.ClientHandshake;
import org.java_websocket.server.WebSocketServer;
public class com extends WebSocketServer {
private String usedComPort = null;
private QRSSB_Linux_Launcher main = null;
public com(InetSocketAddress address) {
super(address);
}
@Override
public void onOpen(WebSocket conn, ClientHandshake handshake) {
conn.send(main.getComPorts());
}
@Override
public void onClose(WebSocket conn, int code, String reason, boolean remote) {
String bash_comm = null;
if( usedComPort != null) {
Runtime rt = Runtime.getRuntime();
bash_comm = "stty -f /dev/"+usedComPort+ " hupcl";
try {
rt.exec(bash_comm);
}catch (Throwable t){
t.printStackTrace();
}
}
Runtime rt = Runtime.getRuntime();
bash_comm = "kill "+ main.getPid();
try {
rt.exec(bash_comm);
}catch (Throwable t){
t.printStackTrace();
}
}
@Override
public void onMessage(WebSocket conn, String message) {
String[] commands = message.split(",");
String onOrOff = commands[2];
String comPort = commands[0];
usedComPort = comPort;
String bash_comm = null;//{"bash", "-c", "null"};
if(onOrOff.equals("on")) {
bash_comm = "stty -f /dev/"+comPort+ " -hupcl";
}else {
bash_comm = "stty -f /dev/"+comPort+ " hupcl";
}
Runtime rt = Runtime.getRuntime();
try {
rt.exec(bash_comm);
}catch (Throwable t){
t.printStackTrace();
}
}
@Override
public void onError(WebSocket conn, Exception ex) {
System.out.println(conn);
System.err.println("an error occured on connection " + conn.getRemoteSocketAddress() + ":" + ex);
}
@Override
public void onStart(){
main = new QRSSB_Linux_Launcher();
System.out.println("server started successfully");
}
Hier
Code:
@Override
public void onStart(){
System.out.println("server started successfully");
}
Sagt mir Eclipse
The method onStart() of type com must override or implement a supertype method
Nehme ich das @Override weg ist die Fehlermeldung weg.
Aber beim Ausführen wird die Funktion gar nicht ausgeführt.
Starte ich dann eine Websocket Verbindung kommt es dazu:
an error occured on connection /127.0.0.1:58674:java.lang.NullPointerException
an error occured on connection /127.0.0.1:58674:java.lang.NullPointerException
an error occured on connection /127.0.0.1:58878:java.lang.NullPointerException
an error occured on connection /127.0.0.1:58878:java.lang.NullPointerException
an error occured on connection /127.0.0.1:58884:java.lang.NullPointerException
an error occured on connection /127.0.0.1:58884:java.lang.NullPointerException
an error occured on connection /127.0.0.1:58946:java.lang.NullPointerException
an error occured on connection /127.0.0.1:58946:java.lang.NullPointerException
an error occured on connection /127.0.0.1:58956:java.lang.NullPointerException
an error occured on connection /127.0.0.1:58956:java.lang.NullPointerException
an error occured on connection /127.0.0.1:39232:java.lang.NullPointerException
an error occured on connection /127.0.0.1:39232:java.lang.NullPointerException
an error occured on connection /127.0.0.1:39286:java.lang.NullPointerException
an error occured on connection /127.0.0.1:39286:java.lang.NullPointerException
an error occured on connection /127.0.0.1:40148:java.lang.NullPointerException
an error occured on connection /127.0.0.1:40148:java.lang.NullPointerException
Bevor ich mit dem Jar Exportieren angefangene ging alles tadellos.
- - - Aktualisiert - - -
Ok, gelöst. Habe auf die neuste java-websocket lib aktualisiert Version 1.3.6 geht jetzt.
Eine Farge habe ich dennoch.
Bei der Anwendung hantelt es sich um einen Updater. Diesen habe ich für Windows Systeme einmal in C# programmiert und für alle anderen Systeme in Java.
Der Upadter lädt ein Zip herunter und entpackt dieses dann in den Order indem sich die Updater.exe selbst befindet.
Mein bedenken ist halt kann ich eine exe ersetzten während diese selbst ausgeführt wird?
Für Java die selbe Frage kann ich ein jar File ersetzen Während dieses ausgeführt wird?