Weg von JBuilder, "back to the roots"

Kermet

Kermet

Aktives Mitglied
Thread Starter
Dabei seit
24.02.2005
Beiträge
1.462
Reaktionspunkte
4
Ich habe folgendes Problem:
In der Uni habe ich Java gelernt (unter Linux). Dort haben wir den Xemacs als Editor benutzt und einfach in der Eingabe compiliert.
In meiner Anfangszeit auf dem Mac habe ich dann JBuilder benutzt, aber das ist mir nichts, um ein paar kleine Java Tools zu schreiben. Und so richtig intuitiv finde ich es auch nicht, bin zudem nie richtig warm geworden damit.

Jetzt würde ich wirklich gerne "back to the roots" und es, wie zu meinen Java - Anfangszeiten unter Linux mit einem einfachen "Texteditor" und dem Terminal nutzen.

Als Editor habe ich momentan Jedit auserkohren. Kommt auch dem Xemacs recht nahe.
Compilieren ist aus dem Terminal raus sowieso kein Problem, aber jetzt wirds mir irgendwie nervig:
Wie funktioniert das mit den Classpath´s?
Ich habe da auf dem Mac keine Ahnung und wäre überaus glücklich, wenn man das wie unter Linux hätte...

Wie gesagt, ich würde gerne weg von Jbuilder.

Noch ein kleiner Zusatz: Wie sieht das eigentlich bei Netbeans aus?
Was sind denn die fundamentalen Unterschiede zwischen Netbeans und JBuilder?

Wäre über jede Antwort dankbar

Kermet
 
Hi Kermet,

wenn Du mit Deiner Classpath-Frage meinst, dass Du neben dem JDK noch zusätzliche Libraries einbinden möchtest und diese dann im Terminal zur Verfügung haben möchtest, dann funktioniert das unter OS X tatsächlich so, wie unter Linux - am Besten export CLASSPATH= ... in die .profile Datei in Deinem Home-Verzeichnis geschrieben und beim nächsten (Shell-)Login sollte der CLASSPATH richtig gesetzt sein.

Ich versteh aber trotzdem nicht, warum Du zum Java Programmieren keine ordentliche IDE nehmen möchtest und auf der Kommandozeile kompilieren willst. Sowas mag zwar für ne Hello World Class vielleicht noch ganz praktikabel sein, aber für Projekte mit mehr als einer Klasse machst Du Dir das Leben damit m.E. unnötig schwer. Da hilft dann auch kein jEdit, denn der ist doch eigentlich nichts weiter, als ein Texteditor mit Syntaxhighlighting, der Dich nicht wirklich beim Entwickeln unterstützt.

Wenn Du wirklich nicht mehr mit dem JBuilder arbeiten möchtest, dann wirf doch einfach mal einen Blick auf Eclipse. Habe selbst eigentlich jahrelang auf den JBuilder geschworen, bis ich aufgrund projekttechnischer Entscheidungen gezwungen wurde, dem JBuilder abzuschwören und mir jemand als Entschädigung für diesen "Verlust" (der im Nachhinein keiner war) all die kleinen und unheimlich nützlichen Tastenkombinationen in Eclipse gezeigt hat.
Richtig konfiguriert und mit den richtigen Plug-Ins versehen (für Eclipse gibt es mittlerweile wirklich für alles und jeden das passende Plug-In) ist diese IDE wirklich enorm leistungsfähig. Riskier einfach mal einen Blick drauf und konfigurier Dir dort Deinen Projekt-Classpath. ;)

Grüße,
imi
 
Zuletzt bearbeitet:
Der JBuilder in seiner bisherigen Form wird ja wohl eh zu Grabe getragen! Borland setzt auf Eclipse-Lösungen ( wenn denn nBorland wirklich weitermacht...).

Java verhölt sich unter Mac OS wie unter LINUX, there is no difference!

Die beiden großen IDE's sind Netbeans und Eclipse. Wobei Netbeans in meinen Augen die rundere IDE ist, auf dem Mac zügiger läuft und angenehmer für Swing und J2EE ist. Eclipse empfinde ich da als hakeliger, dafür ist es aber nunmal quasi Standard, es gibt weit mehr plugins als für Netbeans. Man hat die Qual der Wahl ( ich präferiere netbeans). Falsch macht man mit keiner der beiden IDEs etwas. Ohne IDE zu programmieren bedeutet mir jedoch zuviel "roots", ich genieße den Komfort einer IDE sehr!
 
Danke euch für die Antworten.
JBuilder hat mich selbst einfach genervt irgendwie. Ich arbeite damit nicht gerne.
Habe mir jetzt nochmals Netbeans und Eclipse angeschaut und werde für mich selber eine der beiden IDE´s nutzen, bin mir aber noch nicht sicher, welche. ;)

Aber ich ich muss mich nochmal auf eine Prüfung in Java an der Uni vorbereiten, und dafür sind mir Netbeans und Eclipse zu gefährlich. Hier habe ich für mein Gefühl zu viele Hilfestellungen, die es in der Prüfung nicht gibt...

Deshalb eben leider auch das massive "Back to the roots" und meine Frage nach den Classpaths!
Und hier komme ich eben nicht ganz mit, wie ich die Packages zur verfügung stellen kann. Vielleicht kannst Du mir das nochmal etwas näher bringen, imi...
Fast meine gesamten Programme laufen hier nicht. Es fehlen fast alle, im Kopf importierten Pakete...
Und unter Linux waren sie eben in der Uni alle schon da... ;)

Zum Programmieren werde ich eine der beiden IDE´s nutzen, aber für die Vorbereitung zur Prüfung fühle ich mich wohler mit Jedit. Hier muss ich mich mehr mit den Fehlern auseinandersetzen...

Danke euch nochmal

Kermet
 
Jetzt habe ich eben nochmal versucht, mich mit dem CLASSPATH auseinander zu setzen.
Habe das auch mit dem export versucht, dann hat er über "echo $CLASSPATH" den Pfad (hier habe ich "/System/Library/Frameworks/JavaVM.framework/Classes" genommen).
Allerdings merkt er sich den nicht, wenn ich das Terminal beende. Beim Neustart des Terminals ist der CLASSPATH wieder leer...

Ausserdem gibt er mir immernoch bei so ziemlich jeder Datei den Fehler aus...
("Exception in thread "main" java.lang.NoSuchMethodError: main")
...und ich weiß, dass die Dateien, die ich versucht habe, fehlerfrei sind. Beim Compilieren gibt er auch keinen Fehler aus...

Vielleicht kann mir ja noch jemand weiter helfen?

Danke schonmal
 
Kermet schrieb:
Jetzt habe ich eben nochmal versucht, mich mit dem CLASSPATH auseinander zu setzen.
Habe das auch mit dem export versucht, dann hat er über "echo $CLASSPATH" den Pfad (hier habe ich "/System/Library/Frameworks/JavaVM.framework/Classes" genommen).
Allerdings merkt er sich den nicht, wenn ich das Terminal beende. Beim Neustart des Terminals ist der CLASSPATH wieder leer...


Hast Du den Classpath denn auch in der ".profile" Datei gesetzt und exportiert oder nur mal eben sportlich im Terminal das auf der Kommandozeile eingetippt? im zweiteren Fall wäre dann nämlich schon klar, warum der Classpath beim erneuten Starten des Terminals nicht mehr gesetzt ist. Variablen, die Du im Terminal nämlich einfach nur so eintippst, sind lediglich für die jeweilige Session gültig und in einer neuen Session nicht mehr vorhanden. Deshalb packt man sowas beispielsweise in eine .profile Datei, da diese jedesmal beim Starten des Terminals erstmal gelesen wird.

Kermet schrieb:
Ausserdem gibt er mir immernoch bei so ziemlich jeder Datei den Fehler aus...
("Exception in thread "main" java.lang.NoSuchMethodError: main")
...und ich weiß, dass die Dateien, die ich versucht habe, fehlerfrei sind. Beim Compilieren gibt er auch keinen Fehler aus...

Vielleicht kann mir ja noch jemand weiter helfen?

Danke schonmal

Poste doch mal den Code der Klasse, da sieht man dann meist mehr, als aus einer Exception herausgelesen werden kann... ;)

Hat sich eigentlich die Sache mit den Packages und dem import, die der Compiler nicht findet möchte, inzwischen erledigt?
 
ich steh noch fast so blöd da, wie am Anfang...

Naja fast...Es scheint so zu sein, dass alle meine Anwednungen, die ich unter JBuilder entwickelt habe, aus dem Terminal nicht startbar sind.
Eine andere mögliche Gesetzmäßigkeit konnte ich bisher nicht feststellen.
Beim Compilieren gibt er keine Fehler aus, erst beim Versuch, die Anwendung auszuführen.

Ich habe hier noch alte Dateien aus der Uni. Die führt er jedenfalls problemlos aus...
Ich blick hier irgendwie nicht durch. Habe mich vorher (muss ich zugeben) auch nie damit beschäftigt, weil es in der Uni unter Linux ja einfach lief...
 
Wird eine Exception geworfen, wenn du die Anwendungen startest?
 
ja, eine ganze Menge davon sogar
(allerdings nicht beim Compilieren. Ich habe die Klassen vorher noch einmal compiliert...)

So, wie ich es bisher eingrenzen konnte, machen ein paar Anwendungen, die ich mit emacs unter Linux erstellt habe probleme sowie bei eigentlich allen Anwendungen, die ich mit JBuilder erstellt habe...

Edit:
Ausserdem habe ich es immer noch nicht geschafft, die .profile zu ändern, um die zu importierenden Klassen am Anfang einer selbsterstellten Klasse allgemein zu Verfügung zu stellen...
 
Zuletzt bearbeitet:
Stell doch mal die Runtime-Exception rein .. vielleicht kann man was sehen.
 
zB das hier:
Exception in thread "main" java.lang.NoClassDefFoundError: Application (wrong name: matrix/Application)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

Das ist jetzt eine vond en Anwendungen,die mit JBuilder erstellt wurden und dort auch wunderbar laufen...
 
Das bedeutet, dass Teile der Anwendung, hier die Klasse Application nicht im Classpath liegen. Prüf mal, ob diese im Package entahlten ist.
 
Zurück
Oben Unten