Hallo Zusammen, ich habe eine Anwendung (TCP Server) in Eclips auf meinem Windows Rechner geschrieben.
Was muss ich nun alles tun damit ich die Anwendung auf dem Raspberry Pi ausführen kann?
danke für die Hilfe.
Hallo Zusammen, ich habe eine Anwendung (TCP Server) in Eclips auf meinem Windows Rechner geschrieben.
Was muss ich nun alles tun damit ich die Anwendung auf dem Raspberry Pi ausführen kann?
danke für die Hilfe.
Von Eclips auf Raspberry? Schau mal ob du hier fündig wirst!
Ecplise unterstuetzt diverse Sprachen. Was benutzt Du? C, Java, Python, ... ?
In any case musst Du den Code auf die Pi bringen. Hast Du Win oder Linux ?
es ist ein Java Programm, ich habe windows, winscp und putty ist eigerichtet. auf dem raspberry läuft Raspbian
Dann hast Du ja alles ;). Per scp musst Du den Code auf die Pi bringen. Oder Du suchst mal im Netz nach einem Eclipse scp plugin. Das gibt es bestimmt.
Mit java habe ich auf der Pi nix am Hut - aber cih denke die JRE musst Du noch nachinstallieren.
Ich habe bei eclips nun auf Export geklickt und .jar ausgewähl... diese auf den Raspberry pi geladen.
Wenn ich nun die App mit java -jar server.jar starten möchte kommt:
no main manifest attribute, in server.jar
package com.server;
import java.net.*;
import java.io.*;
import java.util.*;
public class Server implements Runnable {
// A simple talker - Sample written by Graham Ellis, July 2010 (update)
// No login needed. Connect on port 1357.
// commands:
// .q quit
// .w who
// Variables for each thread
Socket linkto; // the socket
PrintWriter out; // the output and input streams
BufferedReader in;
int id; // i.d. of the connection
String from_name; // name of host connecting
// Class Variables
static Vector connectiontable; // current connections
static int nextid = 1; // Increasing i.d.
/////////////////////////////// Main method ////////////////////////
public static void main(String [] args) {
// Parent thread - create a server socket and await a connection
ServerSocket ss = null;
Socket s = null;
connectiontable = new Vector();
try {
ss = new ServerSocket(4444);
while ((s=ss.accept())!= null) {
// Connection received - create a thread
Server now;
Thread current = new Thread(now = new Server(s));
current.setDaemon(true);
connectiontable.addElement(now); // Save talker into vector ..
current.start(); // start the user's thread
}
}
catch (Exception e) {
System.out.println(e);
}
// should add finally block to close down
}
///////////////// Constructor for a new thread //////////////////////
Server (Socket from) {
id = nextid++;
linkto = from;
InetAddress source = linkto.getInetAddress();
from_name = source.getHostName();
try {
out = new PrintWriter(new OutputStreamWriter
(linkto.getOutputStream()));
in = new BufferedReader(new InputStreamReader
(linkto.getInputStream()));
}
catch (Exception e) {}
}
public void run () {
String line = "";
while (true) {
boolean done=false;
// read a line from the user
if (line == null) {
try {
out.print(""); //prompt,flush,read
out.flush();
line = in.readLine();
} catch (Exception e) {
System.out.println(e);
done = true; // force exit if there's a problem
}
}
// Handle special cases - user input starts with "."
// You get a NULL back if connection lost and we should
// pick up that exception!
try {
if (line.startsWith(".q")) done = true;
} catch (Exception e) { // e.g. null
done = true;
line = "[exiting]";
}
if (line.startsWith(".w")) { // build up list of host names
int k;
StringBuffer fred = new StringBuffer("WHO HERE?\n");
for (k=0;k<connectiontable.size();k++) {
Server person = (Server)connectiontable.elementAt(k);
fred.append(person.from_name);
fred.append(" ");
}
line = fred.toString();
}
// echo the line (with a header) to all users
String outline = line;
int k;
for (k=0;k<connectiontable.size();k++) {
Server person = (Server)connectiontable.elementAt(k);
person.out.println(outline);
person.out.flush(); // Vital - ensure it is sent!
}
// clear out the user if they're done
if (done) {
connectiontable.removeElement(this);
try {
out.close(); // closes needed to terminate connection
in.close(); // otherwise user's window goes mute
linkto.close();
} catch (Exception e) {}
break;
}
line = null;
}
}
}
Alles anzeigen
dies ist meine Anwendung
Eigentlich würde ich nun gerne etwas von Maven erzählen... ich weiß nur nicht ob es viel Sinn macht da Maven ziehmlich komplex ist
Ganz kurz: Maven ist in der lage dir eine Jar zu erstellen und durch ein weiteres Plugin kannst du deine Jar direkt via SCP auf den Pi schieben....
Was allerdings viel einfacher wäre ist:
Du installierst dir Samba und mountest deinen Pi als Festplatte. Damit kannst du dann deinen kompletten Eclipse Workspace auf dem Pi halten. Damit hättest du deine Jar direkt auf dem Pi und kannst mit SystemRemote von Eclipse auch schön ausführen (auf dem Pi).
...Was allerdings viel einfacher wäre ist:
Lag mir auch auf der Zunge zu empfehlen. Da ich aber keine praktische Erfahrung diesbezüglich habe hatte ich mich zurückgehalten. Schön zu hören dass das doch auch bzgl Performance gut funktioniert.
Ich habe sowas schonmal produktiv auf der Arbeit genutzt, da wir unsere Java EE Anwendungen auf eigene VMs laufen lassen... Irgendwann bin ich dann aber auf sshfs umgestiegen - könnte vielleicht noch einen Ticken schneller laufen als Samba. Aber unter Windows müsste man sich dazu ein extra Programm / Tool runterladen...
Lag mir auch auf der Zunge zu empfehlen. Da ich aber keine praktische Erfahrung diesbezüglich habe hatte ich mich zurückgehalten. Schön zu hören dass das doch auch bzgl Performance gut funktioniert.
Das Eigentliche Problem war, das ich beim Export vergessen habe eine Main manifest festzulegen.
Ist es möglich eine Jar Datei die Auf Desktop/Programme/server.jar liegt im autostart einzubinden? sodass diese gleich beim Aufstarten ausgeführt wird?
hat sich erledigt
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!