Meine Frage ist einfach: Was ist der beste Ort, um alle meine Jar, gwt und andere Frameworks auf Mac OS X zu speichern?
Ich dachte, dass es /Library/Java/Extensions
ist.
Aber ich bin mir nicht sicher, ob es richtig ist.
Es gibt zwei Möglichkeiten, Java-Zeug zu installieren:
Als Beispiel, hier ist, wie MacPorts Tomcat installiert:
%Vor% Sie möchten das nicht manuell nachahmen, weil es wahnsinnig viel Arbeit kostet und keinen Nutzen bringt. Entweder sudo port install tomcat6
oder dekomprimiere den gesamten Tomcat in /Users/YOURUSER/java/apache/tomcat/6/
und füge bin dem Pfad hinzu. Das Gleiche gilt für SDKs.
Wenn Sie nur Jars (nicht SDKs) installieren möchten, verwenden Sie Maven so oft wie möglich. Sie haben etwas über Probleme beim Hinzufügen zu Ihrem lokalen Repository gesagt. Das ist nicht korrekt, Sie können mehrere Repositories haben und diese pro Projekt aktivieren / deaktivieren. Ich habe eine für die Sachen Maven Downloads, und eine andere, wo ich manuell Dinge hinzufügen. Wenn Sie der einzige Benutzer Ihrer Maschine sind, legen Sie das Repo irgendwo in Ihr Haus, ansonsten verwenden Sie /opt/local/var/
oder wo immer Sie wollen.
Überdenke es nicht, es geht darum, dass du Arbeit schaffst.
Es ist eine sehr schlechte Idee, Bibliotheken in Systemordnern zu installieren, da sie alle auf Ihrem Computer laufenden Java-Programme beeinflussen und Konflikte mit anderen Bibliotheken verursachen können, die von den einzelnen Programmen ordnungsgemäß mitgeführt werden.
Ein viel besserer Ansatz besteht darin, ausführbare / ausführbare Dateien zu erstellen, in denen das Attribut "Class-Path" auf die benötigten Dateien verweist.
Normalerweise sollten Sie Bibliotheken in den Projekten speichern, die sie verwenden, und nicht auf Systemebene. Mit einer Technologie wie Maven wäre dies eine hervorragende Möglichkeit.
UPDATE: Jetzt, da ich weiß, dass du Maven benutzt, ändert sich der Vorschlag ein wenig. Ich verstehe, dass Sie Bibliotheken nicht einfach manuell in Ihr lokales Repository installieren möchten, was sinnvoll ist. Meine Antwort wäre, dass dies viel sauberer ist, als sie in einem globalen Bibliotheksordner abzulegen. (Und Sie vermeiden es, alle Anti-LD_LIBRARY_PATH-Leute in die Arme zu bekommen :)).
Ein anderer Gedanke wäre, Ihr eigenes Maven-Repository einzurichten und Ihre Bibliotheken dort zu behalten.
Es kommt wirklich darauf an, was Sie versuchen zu tun. Willst du nur etwas Code schreiben, der deine Box nie verlassen wird oder willst du eine nette portable Lösung oder was? Wir brauchen definitiv ein bisschen Kontext.
Installieren Sie keine Dateien in /Library
, es sei denn, Sie wissen wirklich, was Sie tun (z. B. müssen Sie möglicherweise einige Verschlüsselungsrichtliniendateien installieren). Sie werden viel besser dran sein, wenn Sie Ihre Gläser an einem anderen Ort aufbewahren.
Da Sie Maven verwenden, könnten Sie ein anderes lokales Repository angeben, indem Sie eine ~ / .m2 / settings.xml-Datei erstellen:
%Vor%Verwenden Sie dann Maven, um die Jars in Ihrem lokalen Repo zu installieren und los gehts.
Persönlich halte ich meine Bibliotheken unter einem Ordner wie ~/dev/java/lib
, um sie organisiert zu halten, und dann installiere ich sie auch mit Maven in mein lokales Repo.
Wenn Sie Maven und Tomcat nicht benötigen, sollten Sie sie in einen beliebigen Ordner einfügen, der in Ihrer Umgebungsvariablen $JAVA_HOME
enthalten ist. Ich würde empfehlen, dass Sie ein Verzeichnis erstellen, sagen Sie
und stellen Sie
ein %Vor%Info zu Umgebungsvariablen in OS X . Befolgen Sie dies für die nackten Anweisungen, aber behalten die JAVA_HOME-Zeile, die in dem Beitrag ist. Fügen Sie die Zeile hinzu, die ich Ihnen irgendwo unter der anderen Definition gegeben habe. Etwas wie das:
%Vor% Beachten Sie auch, dass Sie, wenn Sie eine Systemdatei wie /etc/launchd.conf
verwenden, nicht $HOME
verwenden sollten, da sie möglicherweise noch nicht festgelegt wurde. Verwenden Sie stattdessen einen vollständigen Pfad zu Ihrem Ordner oder verwenden Sie eine Datei, die ausgeführt wird, wenn sich Ihr Benutzer stattdessen anmeldet.
Ich stimme zu 100% mit Leuten überein, die Ihnen gesagt haben, dass Sie Ihre eigenen Dateien nicht in Systemordnern speichern sollen.
Sie müssen Tomcat für Ihre lokale Entwicklung haben. Sie könnten Nexus darauf installieren und dann Ihr eigenes Repository haben, das Sie auch leicht wieder an einen späteren Zeitpunkt verschieben könnten (und es Ihnen die Möglichkeit gibt, Artefakte über eine Webschnittstelle hinzuzufügen, anstatt über die Befehlszeile mit dem Maven 2 Schritt von pom und * ar).
Wenn Sie eine Anwendung über die Befehlszeile (Terminal) ausführen und die App ein jar enthält, das über ein Shellskript (.sh) aufgerufen wird, wäre eine chaotische Option (die ich leider manchmal nutze), die jars zu kopieren Sie /System/Library/Java/Extensions
Pfad.
Ich glaube, Ihr Problem war das fehlende /System/
auf Ihrem Pfad.