Java kompilieren ?


admin1389294680

Recommended Posts

Kennt sich hier jemand aus mit Java kompilieren ?Für den zukünftigen Videochat muß ich ein paar Javas kompilieren und habe keine Ahnung wie das geht.

Link to comment
Share on other sites

Hi,unter folgender Adresse steht eine kleine Anleitung:http://javaschubla.de/2007/javaerst0020.htmlIch denke Du wirst vorher das neueste Java-SDK (Software development kit) installieren müssen.http://www.chip.de/downloads/Java-SDK_12992754.html...oder von SUN direkt. Viel weiter kann ich Dir nicht helfen, da Java wirklich eine Sprache ist mit der ich mich bislang "0" (Null) beschäftigt habe.

Link to comment
Share on other sites

Hi Carlo ich habe schon gestern viele Versuchte mit dem Java-SDK Compiler Javac gestartet. Ich bekomme immer 100 Errors und es werden keine Classes erzeugt.Ohne die Classes wird es kein Videochat geben können.....Ist schon übel das ich nach über 200 Stunden Arbeit am Red5 Server jetzt an ein paar Java Classes scheitere.

Link to comment
Share on other sites

Ich hab da nur ein Tool für:Eclipse JavaDownloadDamit kannst du Java Programme entwickeln und kompilieren.Es wird direkt alles mit installiert.Poste doch mal den Code und die Errors evtl kann ich dir da helfen.

Link to comment
Share on other sites

Poste doch mal den Code und die Errors evtl kann ich dir da helfen.

Hilfe könnte ich wirklich dringend gebrauchen. Es wäre wirklich super wenn Du mir mit dem File helfen kannst.Wenn ich mit javac das File kompilieren will bekomme ich viele Melungen die dann so aussehen (das ist die letzte Zeile): Application.java:376:cannot finde symbol Symbol : Variable Red5 location: class chat.Application I connection conn = Red5.getConnectionLocal<>; 100 Errors Das ist das Java File:http://web3.can158.de/Application.java Als Java Anfänger bekommt man sowas einfach nicht in den Griff und ohne die .classes läuft der Chat nicht....;(
Link to comment
Share on other sites

Und noch der Code: package chat;import org.red5.server.adapter.ApplicationAdapter;import org.red5.server.api.IConnection;import org.red5.server.api.IClient;import org.red5.server.api.IScope;import org.red5.server.api.Red5;import org.red5.server.api.service.IServiceCapableConnection;import org.red5.server.api.so.ISharedObject;import org.red5.server.api.ScopeUtils;import org.red5.server.api.so.ISharedObjectService;import org.red5.server.api.*;import org.red5.server.api.scheduling.*;import org.red5.samples.components.ClientManager;import org.red5.server.api.service.ServiceUtils;import org.red5.server.api.service.*;import org.red5.server.api.service.IPendingServiceCallback;//import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import java.util.*;import java.util.HashMap;////public class Application extends ApplicationAdapter{ public HashMap users = new HashMap();public class User {public String id = null;public String pseudo = null;public String webcam = null;public String role = null;public String sex = null;public String onlineStatus = null;public String room=null;public String world=null;public String isWatching=null;public String hasWebcam=null;public User (String id,String pseudo,String webcam, String role,String sex,String onlineStatus,String room,String world,String isWatching,String hasWebcam) {this.id = id;this.pseudo = pseudo;this.webcam = webcam;this.role = role;this.sex = sex;this.onlineStatus = "true"; this.room = room; this.world = world;this.isWatching = "false"; this.world = world; }} // ici le callback ! ! !/*if (conn instanceof IServiceCapableConnection) {IServiceCapableConnection sc = (IServiceCapableConnection) conn;sc.invoke("the_method", new Object[]{"One", 1}, new MyCallback());}sc.invoke("echo", new Object[]{"Hello world!"},new IPendingServiceCallback() {public void resultReceived(IPendingServiceCall call) {System.err.println("Received: " + call.getResult());}});*/ class MyCallback implements IPendingServiceCallback {public void resultReceived(IPendingServiceCall call) { // Do something with "call.getResult()"}}//private ClientManager2 clientMgr = new ClientManager2("users_so","online",true);private ClientManager clientMgr = new ClientManager("users_so",true); private static final Log log = LogFactory.getLog( Application.class );//ISharedObject users_so;//= getSharedObject(scope);//ArrayList listeUsers = new ArrayList();//ArrayList listeObjectUsers = new ArrayList(); /** Manager for the clients. */public void disconnectUser(String connectionID){ //code to inform other clients that this client with this connection ID has left below...}/** (non-Javadoc)* @see org.red5.server.adapter.ApplicationAdapter#connect(org.red5.server.api.IConnection, org.red5.server.api.IScope, java.lang.Object[])* connect an users with 7 parameters: username,webcam,onlineStatus, role, room, world */public boolean connect(IConnection conn, IScope scope, Object[] params) {log.info("connect IConnection nombre params="+ params.length);// Check if the user passed valid parameters.//params = pseudo onlineStatus role sexe room worldif (params.length==1) { log.info("getNumberUsersConnected");((IServiceCapableConnection) conn).invoke("getNumberUsersConnected", new Object[]{users.size()});//rejectClient("getNumberUsersConnected !.");conn.close();return false;}if (params == null || params.length != 7) {log.info("Client must pass 7 params !");rejectClient("Client must pass 7 params !.");return false;}String id = conn.getClient().getId();String pseudo = params[0].toString();String webcam = params[1].toString();String onlineStatus = params[2].toString();String role=params[3].toString();String sex = params[4].toString();String room = params[5].toString();String world=params[6].toString();String isWatching="false";String hasWebcam="true";// test if username is already usedif (users.containsKey(pseudo)) { rejectClient("Error: pseudo "+pseudo+" already used.");return false;} // Call original method of parent class.if (!super.connect(conn, scope, params)) {return false;} log.info("ici2");users.put(pseudo,new User(id,pseudo,webcam, role,sex,onlineStatus,room,world,isWatching,hasWebcam));log.info("ici3");log.info("connected as :"+pseudo+"webcam="+webcam+" status="+onlineStatus+"role="+role+"sexe="+sex+"room="+room+"world="+world);clientMgr.addClient(scope, pseudo, id);ServiceUtils.invokeOnAllConnections (scope, "joinuser", new Object[] {id,pseudo,webcam, onlineStatus,role,sex,room,world} );return true;}/** (non-Javadoc)* @see org.red5.server.adapter.ApplicationAdapter#disconnect(org.red5.server.api.IConnection, org.red5.server.api.IScope)* disconnect an user form the chat and notify all others users */public void disconnect(IConnection conn, IScope scope) { // Get the previously stored username.String id = conn.getClient().getId(); // Unregister user.String pseudo = clientMgr.removeClient(scope, id);User user=users.get(pseudo);users.remove(pseudo);log.info("removeuser invoked id:"+user.id+" pseudo="+user.pseudo+"sexe="+user.sex);ServiceUtils.invokeOnAllConnections (scope, "removeuser", new Object[] {user.id,user.pseudo,user.room,user.world} );super.disconnect(conn, scope); } public boolean appJoin(IClient client, IScope scope) {log.info("Client joined app " + client.getId());// If you need the connecion object you can access it via.//IConnection conn = Red5.getConnectionLocal();return true;}public void send_to_all_iterate() {IConnection current = Red5.getConnectionLocal();Iterator it = scope.getConnections(); while (it.hasNext()) {IConnection conn = it.next();if (conn.equals(current)) continue;if (conn instanceof IServiceCapableConnection) {((IServiceCapableConnection) conn).invoke("someClientMethod", new Object[]{"Hello World"});log.debug("sending notification to "+conn);} }} /** get all the already connected users*/public HashMap getUserList() {/*IConnection conn = Red5.getConnectionLocal(); if (conn instanceof IServiceCapableConnection) {((IServiceCapableConnection) conn).invoke("receive_private", new Object[]{"zaza"});log.info("getUserList"+conn.getClient().getId());}*///listeObjectUsers.toString()log.info("getUserList called"); return users; } /** send a public message msg from from_pseudo to ALL users*/public void send_public(String from_pseudo, String msg) {//Iterator it = scope.getConnections();log.info("send_public from_pseudo"+from_pseudo+" msg:"+msg);ServiceUtils.invokeOnAllConnections (scope, "receivePublicMsg", new Object[] {from_pseudo,msg} );}/** start Talk invoked on all users by whoTalks*/public void startTalk(String whoTalks) {log.info("startTalk: "+whoTalks);ServiceUtils.invokeOnAllConnections (scope, "talkStarted", new Object[] {whoTalks} );}/** stop Talk invoked on all users by whoTalks*/public void stopTalk(String whoTalks) {log.info("stopTalk: "+whoTalks);ServiceUtils.invokeOnAllConnections (scope, "talkEnded", new Object[] {whoTalks} );}/** gett the number of connected users to the chat*/public int getNumberUsersConnected(){return users.size();}/** start requestHand invoked on all users by whoRequests*/public void requestHand(String whoRequests) {log.info("send_public from_pseudo"+whoRequests);ServiceUtils.invokeOnAllConnections (scope, "handRequested", new Object[] {whoRequests} );} /** send a privateMessage msg from fromPseudo to sendToId user*/public void send_private_id(String sendToId,String fromPseudo, String msg) {//IConnection current = Red5.getConnectionLocal();Iterator it = scope.getConnections();log.debug("send_private to "+sendToId+" "+msg);//String uid = scope.getClient().getId();while (it.hasNext()) {IConnection conn = it.next();String id=conn.getClient().getId();if (!(sendToId.equals(id))) continue;log.info("receive_private "+sendToId+" "+msg);if (conn instanceof IServiceCapableConnection) {((IServiceCapableConnection) conn).invoke("receive_private", new Object[]{msg});log.info("received_private "+sendToId+" "+msg);return;} }} /** who is wathing who function*/public void watches(String UserId) {IConnection conn2 = Red5.getConnectionLocal();String uid = conn2.getClient().getId(); Iterator it = scope.getConnections();log.debug("watches "+UserId);while (it.hasNext()) {IConnection conn = it.next();String id=conn.getClient().getId(); if (!(UserId.equals(id))) continue;if (conn instanceof IServiceCapableConnection) {((IServiceCapableConnection) conn).invoke("watches", new Object[]{uid});log.info(uid+" is watching "+UserId);return;} }} /** ban the user _id*/public void ban(String _id) {Iterator it = scope.getConnections();//log.debug("ban called: "+_id);while (it.hasNext()) {IConnection conn = it.next();String id=conn.getClient().getId();if (!(_id.equals(id))) continue;if (conn instanceof IServiceCapableConnection) {((IServiceCapableConnection) conn).invoke("IhaveBeenBanned", new Object[]{_id});log.info("ban "+_id);} }} /** kick the user _id*/public void kick(String _id) {Iterator it = scope.getConnections();//log.debug("kick called: "+_id);while (it.hasNext()) {IConnection conn = it.next();String id=conn.getClient().getId();if (!(_id.equals(id))) continue;if (conn instanceof IServiceCapableConnection) {((IServiceCapableConnection) conn).invoke("IhaveBeenKicked", new Object[]{_id});log.info("kick "+_id);} }} /** send a private message msg from user fromPseudo to detsination user DestinationID*/public void send_private(String fromPseudo, String DestinationID,String msg) {//IConnection current = Red5.getConnectionLocal();Iterator it = scope.getConnections();log.debug("send_private to "+DestinationID+" "+msg);//String uid = scope.getClient().getId();while (it.hasNext()) {IConnection conn = it.next();String id=conn.getClient().getId();log.debug("id="+id+ " senTO="+DestinationID);//if (sendTo.equals(id)) log.info("PAREIL"); else log.info("differents"); if (!(DestinationID.equals(id))) continue;log.info("receive_private "+DestinationID+" "+msg);if (conn instanceof IServiceCapableConnection) {((IServiceCapableConnection) conn).invoke("receivePrivateMsg", new Object[]{fromPseudo, msg});log.info("received_private "+DestinationID+" "+msg);} }} /** change the status of the webcam: can be "on" or "off"*/public void change_webcam(String webcam) {//IScope appScope = Red5.getConnectionLocal().getScope();IConnection conn = Red5.getConnectionLocal();String uid = conn.getClient().getId();log.debug("change_webcam called form id:"+uid+" :"+webcam);ServiceUtils.invokeOnAllConnections (appScope, "change_webcam", new Object[]{uid,webcam} );}/** change the status of the user to "status"*///public void changeProfil(String webcam,String role, String onlineStatus) {//IScope appScope = Red5.getConnectionLocal().getScope();IConnection conn = Red5.getConnectionLocal();String _id = conn.getClient().getId();log.debug("changeProfil called form id:"+_id+" :"+webcam);ServiceUtils.invokeOnAllConnections (appScope, "changeProfil", new Object[]{_id,webcam,role,onlineStatus} );// return (new Object[]{uid,status});}public Double add(Double a, Double b){return a + b;}public Boolean appStart() {//users_so = SharedObject.get("users_so", false);createSharedObject(Red5.getConnectionLocal().getScope(), "users_so", false);log.debug("application START!");return true; }public boolean roomStart(IScope room) {log.info( "Red5First.room start " + room);if (!super.roomStart(room))return false; //createSharedObject(room, "sampleSO", true);//ISharedObject so = getSharedObject(room, "sampleSO");// Now you could do something with the shared object... return true; } public String whoami() {IConnection conn = Red5.getConnectionLocal();IClient client = conn.getClient();IScope scope = conn.getScope();return client.getId();// ...}public void callclient() {log.info("callclient called");IConnection conn = Red5.getConnectionLocal();if (conn instanceof IServiceCapableConnection) {IServiceCapableConnection sc = (IServiceCapableConnection) conn;log.info("flashmethod called");sc.invoke("flashmethod", new Object[]{"One", 1});}}public boolean appConnect( IConnection conn , Object[] params ){ //String id=conn.getClient().getId();//String username=(String)params[1];//String password=(String)params[2];//String sexe=(String)params[3];//String status=(String)params[4];// cherche si user déjà dans la liste //Cuser user=new Cuser(id,username,password,sexe,status);/*if (this.list[userName]) {application.rejectConnection(newClient, {msg:"Nom déjà utilisé, essayez de nouveau."});trace("### name taken");return;} */ log.info( "appConnect " + conn.getClient().getId() );//boolean accept = (Boolean)params[0];//String user=(String)params[1];// if ( !accept ) rejectClient( "you passed false..." );return true;}public void appDisconnect( IConnection conn){ log.info( "Red5First.appDisconnect " + conn.getClient().getId() );// IScope appScope = Red5.getConnectionLocal().getScope();// ServiceUtils.invokeOnAllConnections (appScope, "removeuser", new Object[] { "zaza" } ); } public void appStop() {log.info( "Red5First.appStop" );}}

Link to comment
Share on other sites

Ich werd mich da morgen mal durchwuselnWenn ich eins gelernt habe ist es das es nah 7 Uhr abend keinen Sinn mehr macht sich durch irgendeine Art von Code zu hacken.Aber überprüf schon mal Line 376 auf "Variable Red5".So wie ich das sehe scheint es dort ein Problem bei der Übergabe des Rückgabeparameters der Funktion"Red5.getConnectionLocal()"Wo ist diese Function Hinterlegt ?Ich werde das teil mal durch Eclpise jagen.Soweit ich weiss ist der Debugger garnicht mal schlecht :)Entweder hast Du nen Ego bis sonstwohin oder Du bist irre :D :DAls Javaanfänger sollte man keinen Chat proggn ^^ Da gehts erstmal mit dem Fundamentalen teilen los ^^Wie sagte mein Leherer: "Irre ist eine Definitionssache" und "Äh ich glaub Hardware liegt dir besser"Dafür hasse ich ihn heute noch :PHabs ihm dann in der Abschlussprüfung heimgezahlt :D :D :D

Link to comment
Share on other sites

Wäre klasse wenn Du das File morgen debuggen kannst und es schaffst die Classes zu generieren.Ich habe den Chat nicht selber geschrieben. Der Source Code ist von red5chat.com. leider gibt es von denen keinen Support.Ich selber habe nur den Red5 Mediaserver auf den Webserver installiert und die Flash Files angepasst. Das war aber auch schon schlimm genug.

Link to comment
Share on other sites

So nach langem hin und her hab ich ne Idee.Sind die Blibliotheken die oben in der .java eingebundne werden auf Deinem Server vorhanden ?Die müssen mit in das Projekt.Am besten mit einem Compiler auf deinem Server compilieren.

Link to comment
Share on other sites

So nach langem hin und her hab ich ne Idee.

Ja das könnte der Grund sein. Ich habe mit einem einfachen javac gestern versucht das File direkt auf dem Server zu kompilieren. Auf dem Server bringt er dann nur noch 3 Error.....?(muß man bei javac noch den path oder sowas angeben ? Also als Beispiel:Ich gehe als root auf den Server. Dann gehe ich mit cd usr/lib/ usw. in das Java Verzeichnis wo javac liegt.Wie muß an dieser Stelle der javac Befehl aussehen ?????? Ich muß ja die library Javac übergeben.
Link to comment
Share on other sites

Der Befehl:javac "pfad zur .java datei"Beispiel:javac -g C:\progs\java\Application.java (windoff)javac -g \usr\progs\java\Application.java (linux)Die parameter hab ich jetzt nicht im Kopf. Die müsstest du über man javac rausfinden.Vor allem musst Du den parameter für das komplette Debuggen mit angeben.und dann mal Posten was da steht.die Drei Fehler könntest Du mal posten.Ich glaub kaum das ich nen Zugang zum Server bekomme um das mal zu testen :)Zumindest müssen irgendwo diese Importe hinterlegt sein.Irgendwie schafft es der compiler nicht das zu interpretieren.

Link to comment
Share on other sites

Hab nicht alles gelesen, aber hier mal ein paar Standardfehler beim Kompilieren:Ist es nur ein file, welches kompiliert werden muss oder mehrere? Ich wuerd mal "javac *.java" versuchen.Werden die Klassen alle richtig importiert?Ist der CLASSPATH richtig gesetzt?Sind alle entsprechenden Verzeichnisse und Klassen fuer den user lesbar? Rechte?Hast Du alles im working directory des compilers?Brauch das Teil ein bestimmtes Framework? Den kompletten Pfad brauch man in der Regel nicht, wenn man im Verzeichnis der Quelldatei ist und die Pfade stimmen.

Link to comment
Share on other sites

Die .classes sind schon Fertig Don (das ich das mal sagen würde).Kompiliert sind sie schon.Jetzt gibt es aber andere Probleme und da ich hab heute (später nachmittag) nicht mehr da bin brauchen wir einen der sich mit Flash auskennt.

Link to comment
Share on other sites

Stan Switek und Don Ich habe auf einem Flashforum einen User gefunden der das schon installiert bekommen hat. Auffällig ist das es bei uns im Verzeichnis den Ordner lib mit den 4 Files garnicht gibt. Hier der Orginaltext vom User:

ich hab auf dem red5-server unter webapps nen ordner chat angelegt.da drin wurde nachträglich von der applikation ein persistance-ordner angelegt. (daran sieht man, daß es gefunzt hat)ich hab im chat-ordner nur den ordner WEB-INF reingelegt, darin- red5-web.properties- red5-web.xml- web.xml- ordner classes . - backupchat.txt. - demo.txt. - User.as. - nochmal ein ordner chat mit den 3 kompilierten java-klassen- ordner lib. - echo.jar. - logback-classic-0.9.8.jar. - logback-core-0.9.8.jar. - slf4j-api-1.4.3.jarangepaßt habe ich die 3 dateien unter WEB-INF (siehe oben), die mysql-datenbank, die php-scripte und den flash.die java-klassen hab ich auf meinem windows-rechner mit eclipse kompiliert.mehr war nicht zu tun...

Link to comment
Share on other sites

Wie hat er den Server denn ans laufen bekommen?weil über den kann man nichts konfigurieren ;)Und die Ordner werden nicht angelegt weil der Server anscheinend nicht richtig läuft.Frag ihn mal nach einer Anleitung :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.