dll? oder ähnliches?

Status
Nicht offen für weitere Antworten.

Calamitous

Bekanntes Mitglied
hi!
nachdem ich nun ein eher umfangreiches Projekt habe (oder werden soll ;). Ergibt sich nun das Problem bezüglich der Aufteilung. Entwickle im JBuilder (nur so nebenbei...). Also wenn ich hier zB 50 Klassen im Projekt Explorer habe kenne ich mich überhaupt nicht mehr aus... :(
Da ich eigentlich bis jetzt VC, etc.. Programmierer war und erst jetzt Java für mich entdeckt habe, klingt es wahrscheinlich wie eine Anfängerfrage, aber naja kA...
Also wenn ich zB in VC6 "zuviele" Klassen haben erstelle ich mir zB einfach eine dll. Gut und einfach. Dadurch wird das ganze ein wenig übersichtlicher...
Aber wie geht das ganze nun in Java? dll's kann ich hier ja nicht erstellen oder so was? aber wie mache ich ein derartiges Projekt dann ein wenig übersichtlicher?
danke für alle Antworten!
lg Manuel
 

Calamitous

Bekanntes Mitglied
ah ok,...
und wie greife ich dann auf diese zu?
bzw. wo müssen sie liegen? im ordner des Projektes? oder sind diese Packages lediglich im Jbuilder vorhanden?
danke schonmal werd mich sonst auch gleich soweit informieren... :)
lg Manuel
 
B

bygones

Gast
package = unterordner.

D.h. wenn du ein Java proect hast "mineProject". Das liegt im Order "mineProject". Nun kannst du dort einen Unterordner anlegen ("mineSubOrdner"). Dann haben alle Klassen die in diesen Ordern gehören das package mineProject.mineSubOrdner.

Klassen die Klassen aus anderen packages nutzen wollen müssen diese importieren. Wenn z.B. du eine Klasse im Package mineProject.anotherPackage hast und in der eine Klasse aus mineProject.mineSubOrdner nutzen willst muss in der ersten Klasse stehen:

Code:
import mineProject.mineSubOrdner.*;

mit dem '*' importierst du alle Klassen des Packages.....
 

Nobody

Top Contributor
im jubilder sieht das so aus:
im src ordner deines projektes liegen alle selbsterstelle packages, dann und nur dann funktioniert das auch richtig.
 

Javahnsinn

Aktives Mitglied
Hallo,

die Funktion der dlls als Laufzeitbibliotheken kannst du mit Java sehr elegant nachbilden, wenn du für den Endbenutzer alle erstellten Klassen und Pakete in JAR-Archive packst.

Du mußt dir (ausser es geht um ein Applet, was ich nach dem, was du schreibst, nicht glaube) eine sogenannte MANIFEST-Datei, eine reine Textdatei, erzeugen. Die einfachste, aber funktionierende MANIFEST-Datei sieht so aus:
Manifest.txt
Code:
Main-Class: Klasse_mit_der_main_Methode
Beachte, dass dieseZeile mit einem return enden muss.
Als nächstes hast du zwei Möglichkeiten.

:arrow: Du erstellst ein Archiv mit allen Klassen und Paketen
Code:
jar cvfm MeinJavaProggi.jar Manifest.txt *.*
:arrow: Oder du erstellst für jedes Package ein Archiv - ganz wie es zu einer ~.exe mehrere ~.dlls geben kann
Code:
jar cvfm HauptProggi.jar Manifest.txt *.class
jar cvf Runtime_1.jar paketordner_1
jar cvf Runtime_2.jar paketordner_2
...
Die Reihenfolge der Parameter cvfm ist hier wichtig (f und m in der Reihenfolge der Parameter Archiv und Manifestdatei). Den Parameter v brauchst du nicht unbedingt, er gibt dir nur den Fortschritt der Archiverstellung in der DOS-Box aus (verbose = wortreich, geschwätzig).

Im zweiten Fall muss der Benutzer jede Runtime_x.jar in seinen CLASSPATH aufnehmen. Am besten schreibst du zum Starten des Programms ein Skript/eine Batchdatei, die das Programm mit folgenden Parametern startet:
MeinJavaProggi.bat
Code:
@echo off
java -cp .;%CLASSPATH%;Runtime_1.jar;Runtime_2.jar -jar HauptProggi.jar
exit

Im ersten Fall sieht der Aufruf für das Proggi auf dem Zielrechner (unter Windows) so aus:
Code:
java -jar -cp .;%CLASSPATH% -jar MeinJavaproggi.jar

Ganz clever ist ein Installprogramm, dass auf dem zielrechner die benätigten Runtime-jars gleich als Extension nach %JAVA_HOME%\jre\lib\ext installiert, so, wie du dlls ja auch nach %WINDIR%\SYSTEM installieren würdest. Dann müssen sie nämlich nicht mehr im CLASSPATH stehen...

Vergiß nicht: JBuilder ist vor deiner Nase, aber der Rechner, auf dem das Proggi mal laufen soll, steht draussen.

Viel Spaß beim Coden,
Jürgen
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben