Zeichen aus mehreren Dateien loeschen

martin1605

Grünschnabel
Hallo zusammen,

ich schreibe gerade meine Diplomarbeit und entwickle dafuer mit Java in Eclipse Testprogramme, die im Endeffekt von der Konsole aus automatisch gestartet werden sollen.
Im Moment habe ich das Problem, dass in Eclipse die Programme in einem Package zusammen gefasst sind, das dem Verzeichnis entspricht. Wenn die Programme erfolgreich getestet sind, werden sie auf einen anderen Rechner kopiert, dort compiliert und ausgefuehrt. Jetzt kommt das Problem, dass der Compiler mit den packages Probleme hat. Daher wuerde ich am liebsten den Eintrag "package com.abc.xyz" aus jeder Datei, die in dem Verzeichnis liegt loeschen und wieder speichern. Dies sollte am besten auch ein Javaprogramm uebernehmen.

Mir fehlt das Wissen und die Erfahrung, dies in absehbarer Zeit zu programmieren. Kann mir jemand helfen?

Vielen Dank im Voraus!

Martin
 
Hi,
also eigentlich ist das kein so arges Programmierproblem.
Aber mal 'ne Frage, welches Problem entsteht denn bei den Packages für den Compiler?
Ich halte es nicht für sonderlich gut, wenn man Paketebezeichnungen mal mirnixdirnix erschlägt. Sind die Programme von Dir oder von anderen, aus denen Du die Paketbezeichnungen entfernen möchtest?
 
Hallo takidoso,

der Compiler hat das Problem, dass er andere Klassen deren Methoden ich verwende nicht findet. Ich habe mir z.B. eine eigene Klasse fuer ein formatiertes Datum erstellt. Beim Aufruf Datum.getDatum(); kommt die Meldung:

cannot access Datum
bad class file: ./Datum.java
file does not contain class Datum
Please remove or make sure it appears in the correct subdirectory of the classpath.

Ich habe schon von Hand alle Paketbezeichnungen geloescht und dann hat alles problemlos funktioniert. Es ist bloss etwas laestig, bei jedem neuen Update aus allen Dateien diese Zeile zu loeschen. Daher moechte ich dies automatisieren.

Die Programme sind von mir. Ich habe bloss bisher nichts im Sinne von nach Dateien suchen und spezielle Strings loeschen gemacht. Was ich bisher darueber gelesen habe scheint mir sehr kompliziert und Fehler anfaellig.

Viele Gruesse

Martin
 
Hallo Martin,
ich kann Dir das Löschen der Pakete tatsächlich nicht wirklich empfehlen. stattdessen solltest Du vielleicht lieber die Dateien in den richtigen Paketpfad einbringen.
Das wäre zumindest der sauberere Weg.
dann noch eine andere Frage, warum möchtest Du eigetnlich die Dateien erneut kompilieren? zum testen selbst auf einen anderen Rechner solltest Du das nicht notwendigerweise müssen.
Allerdings wenn dies Der Hauptteil Deiner Strategie ist die Dateien erneut (vermutlich zentral) zu komplieren dann ok.

Takidoso
 
Zuletzt bearbeitet:
Du meinst, ich soll die class anstatt der java Dateien kopieren. Auf die Idee bin ich noch garnicht gekommen. Vielen Dank, werde ich versuchen!

Viele Gruesse

Martin
 
Funktioniert leider nicht. Es kommt folgende Fehlermeldung:

Exception in thread "main" java.lang.NoClassDefFoundError: TestChangePage (wrong name: com/example/Test/TestChangePage)

Der package-Pfad verfolgt mich immernoch.

Viele Gruesse

Martin
 
Du meinst, ich soll die class anstatt der java Dateien kopieren. Auf die Idee bin ich noch garnicht gekommen. Vielen Dank, werde ich versuchen!

Viele Gruesse

Martin


Das wäre eine Möglichkeit, es gibt aber auch die Möglichkeit die Dateien in eine Bibliothek zusammenzufassen - in ein .jar File.
Unter Eclipse gibt es da eine nette Möglichkeit:
Dazu gehst Du in den Package-Explorer und mit dem Kontextmenü auf Deinem Projekt wählst Du Export.. aus. Du kommst dann auf einen Dialog und wählst Jarfile aus
dann wirst Du von einem Wizzard geführt. Damit Du nicht immer wieder durch dne Wizzard gehen musst um ein neues Jarfile zu generieren, kannst Du die eingestellten Optionen in eine Beschreibungsdatei speicher (.jardesc). Diese Beschreibungsdatei kannst Du dann später stattdessen mittels Contextmenü zu erzeugen des .jar-files in Eclipse anstoßen. Ich empfehle da immer sämmtliche bibliotheken die man so in seienn Projekten verwendet bzw selbst erzeugt in ein zentrales Verzeichnis Deines Entwicklungsrechners zu stellen, zwecks schnrellern Wiederfindens.
Diese selbsterzeugte .jar Datei kannst Du dann genauso wie andere verwendete in Deinem Aufrufscript einbinden.
 
Zuletzt bearbeitet:
Funktioniert leider nicht. Es kommt folgende Fehlermeldung:

Exception in thread "main" java.lang.NoClassDefFoundError: TestChangePage (wrong name: com/example/Test/TestChangePage)

Der package-Pfad verfolgt mich immernoch.

Viele Gruesse

Martin

Wie hast Du denn den Compiler aufgerufen und wie heißt Dein Package-Name?

ach so, Du hast jetzt das Program gestartet :-D

schau doch mal ob Du den Klassenpfad beim Aufruf Deines Programmes richtig gesetzt hast.
 
Zuletzt bearbeitet:
Wie hast Du denn den Compiler aufgerufen und wie heißt Dein Package-Name?

ach so, Du hast jetzt das Program gestartet :-D

schau doch mal ob Du den Klassenpfad beim Aufruf Deines Programmes richtig gesetzt hast.

da fällt mir noch was auf,
Du hast doch das Paket com.abc.xyz genannt, dann musst Du wenn Du nur class-Dateien jetzt reinbringst diese ebenfalls in der richtigen Verzeichnisstruktur ablegen ;-)
also in etwas was da heißt: .../com/abc/xyz
 
Vielen Dank fuer die vielen Anregungen. Ich werde sie am Montag ausprobieren. Jetzt muss ich meine Kinder abholen.
Schoenes Wochenende
 
Zurück