Kann man mit Javac Folgendes Project vernünftig compelieren

Dukeatcoding

Mitglied
Eigentlich ist die Frage vielleicht schon etwas dumm, da man ja eigentlich alle Java Programme mit Java compelieren kann.

Manche erinnern sich vielleicht noch ich hab im letzten Monat probiert irgendwie extern den Eclipse Compilier zu benutzen um ein vom SVN heruntergeladenes Project automatisch zu compelieren (vielleicht auch hier jemand noch eine Idee zu)

Da mir dies nicht gelungen ist schalge ich gerade einen anderen Weg ein und versuche herauszufinden ob es möglich ist mit dem standart java Befehl und entsprechenden Parameter (die ich net kenne)

Folgendes Projekt zu compelieren
http://www.game-n.de/download/hellobibo.zip

Für Antworten wäre ich sehr Dankbar
 
Naja, das Kompilieren scheint kein großes Problem zu sein. Einfach runterladen und entpacken. Dann in das Verzeichnis src wechseln. (Nicht nach src\hb !)

Von da aus einfach kompilieren mit
Code:
javac -cp .;../xercesImpl.jar hb\HBmain.java
Er beschwert sich, dass irgendwas deprecated wäre ... naja, soll er halt :)

Und starten scheint auch zu klappen ... mit
Code:
java -classpath .;../xercesImpl.jar hb.HBmain irgendeineURI
Beschwert sich natürlich, dass er diese URI nicht findet, sieht für mich aber prinzipiell funktionstüchtig aus ...

Ok, normalerweise würde man die Class-Datei nicht im SRC-Verzeichnis ablegen ... aber es funktioniert :)
 
Ah vielen Dank schonmal für die Antwort werde ich auch gleich mal probieren.

Ich glaub du hast auch schon aufgelöst warum ich zur Zeit folgendes Problem habe:

D:\hellobibo\bin\>java hb.HBmain D:\personal.xml ---> error: Unable to instantiate parser(org.apache.xerces.parsers.SAXParser)

Weil ich wohl beim Aufruf über den cp noch wieder das XercesImpl übergeben muss

Mit Javac kann ich genau wie mit Eclipse auch die Compiler Version angeben in der es kompeliert werden soll oder ?

Kann ich eigentlich ähnlich wie bei Eclipse das ganze dann in bin reinkompelieren lassen ohne es jetzt projektspezifisch machen zu müssen ==> Es muss halt genau das gleiche passieren, was passieren würde wenn man in Eclipse auf den Compiler Button drückt
 
Spiel doch einfach mal rum mit dem javac

Wenn du nichts eingibst bietet er ja Hilfe mit -help an und dort steht alles was unterstützt und gebraucht wird.
 
Also du kannst (wieder im src-Verzeichnis) natürlich auch mit
Code:
javac -cp .;../xercesImpl.jar hb\HBmain.java -d ../bin
angeben, dass es ins bin-Verzeichnis soll (wird dann automatisch erstellt).

Beim Versuch mit der personal.xml zu starten beschwert er sich bei mir, dass er die personal.dtd nicht findet ... keine Ahnung was das ist, aber ich weiß auch nicht, was ich da versuch zu starten :)

Das mit der Kompilier-Version weiß ich auch nicht ... Eclipse hat da glaub ich was eigenes. Zumindest kann man mit Eclipse Java-Code kompilieren, selbst wenn man kein JDK installiert hat :)
 
Ich hab auch noch ne andere Seite dazu gefunden wo ich nachher mal mit Spielen werde...

Als Eclipse User und nicht über Console starte hab ich gerade noch so meine anderen Probleme:

screen.jpg


Ah ich hab den Post von Klabac noch net gesehen... ich hab das gleiche Problem mit der dtd... auch kp

Ich find das beim cp mit dem .; so komisch.... das muss man ja beim normalen Pfad davor hängen

Kann ich denn jetzt trotzdem davon ausgehen, dass er die bibos nun korrekt lädt ja ? , weil sonst hatte man wenn mand as mit dem xerces Weg lässt ja nen Fehler im Bezug auf den SAX Compiler
 
Zuletzt bearbeitet:
Dankte für den Link zeja

Also das Problem mit der dtd hab ich gelöst.

Und zwar handelt es sich dabei um eine Datei, die ein struktur für die xml vorgibt und ein parser über diese datei dann prüfen kann ob die xml valid ist. Ich hab den Hinweiss auf die dtd einfach aus der XML entfernt und dann gings.

Ich wundere mich aber irgendwie immer noch das man beim Starten dann wirklich immer die Bibliothekt mit angeben muss, ich hatte mir das eher vorgestellt, dass er das mit einkompeliert oder so.
 
Nein in Java ist es extra so gehalten das nichts mit reinkompiliert wird und die Bibliotheken somit als eigene Jars austauschbar bleiben. Das hat sicher auch Copyright Aspekte wenn man das ansonsten nicht mehr klar trennen könnte.

Aber du kannst dir z.B. nen Batchfile erstellen um das Programm einfacher Starten zu können ohne alles immer wieder eintippen zu müssen. Weiterhin kann man auch nen eigenes Jar davon erstellen und die Bibliothek in der Manifest in den Classpath eintragen, dann wird diese auch mitgeladen ohne dass man es beim starten angeben muss.
 
Das Problem bzw. der Grund weshalb ich das hier alles rausfinden muss / teste ist halt das Make sytem an dem ich schreibe per XML z.B:

<Makesystem>
<tool>
<name>java</name>
<cmd>D:\Programme\Java\jdk1.6.0_01\bin\javac</cmd>
</tool>
<output>
<name>outputa</name>
<usetool>java</usetool>
<argument>svn://a/b/c/Hello.java</argument>
</output>
</Makesystem>

Wir ferstgelegt , was von wo geholt wird und mit welchem compiler in welcher version kompeliert wird und das soll möglichst einfach gehalten werden deshalb halt zunächst die idee das alles mit eclipse zu kompelieren....

Jetzt müsste ich aus Eclipse project configs... rausziehen was für libs damit reingehören und dass dann entsprechend compelieren

EDIT:
So ich habs jetzt mals selber "per Hand" mit javac compeliert und stelle fest, dass die kompelierte Datei kleiner ist als die Orginale.

Wenn ich es starte kommt aber das gleiche ergebnis bei:

D:\Programme\Java\jdk1.6.0_01\bin>javac -cp .;D:/hellobibo/xercesImpl.jar D:/hel
lobibo/src/hb/HBmain.java -d D:/hellobibo/bin2/
Note: D:\hellobibo\src\hb\HBmain.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

D:\hellobibo\bin2>java -cp .;../xercesImpl.jar hb.HBmain D:\personal.xml

entspricht

D:\hellobibo\bin>java -cp .;../xercesImpl.jar hb.HBmain D:\personal.xml
 
Zuletzt bearbeitet:
Zurück