/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
JAR - mine egne?
Fra : M_abs


Dato : 04-02-03 23:14

Der er noget jeg har tænkt over, jeg vil godt bruge en Jar-fil til mit
program, når jeg bruger dette vil jeg gerne have flg. opfyldt:
(Bemærk tænkt situation)

1.) Mit program skal kunne start med forskellige parametre,
fx. -gui, -nogui, -verbose eller andet
2.) Jeg bruger pakker til mit program, det kunne være pakke_laf.jar,
pakke_andet.jar, disse skal inkluderes i min Jar-fil så programmet kan finde
dem
3.) Jeg bruger også et par billede-ikoner i mit program, disse skal derfor
også med
4.) Jeg har opdelt mine .class filer i forskellige mapper efter hvad de er
til, dette er for at holde styr på dem, så disse skal selvfølgelig også
kunne findes af programmet

5.) ikke vigtigt: Kan man give en Jar-fil et ikon?

Jeg prøvede jar -help men fik ikke ret meget ud af hjælpe teksten



 
 
Lars Dam (05-02-2003)
Kommentar
Fra : Lars Dam


Dato : 05-02-03 00:16

On Tue, 4 Feb 2003 23:13:57 +0100
"M_abs" <M_abs@oncable.dk> wrote:

> Der er noget jeg har tænkt over, jeg vil godt bruge en Jar-fil til mit
> program, når jeg bruger dette vil jeg gerne have flg. opfyldt:
> (Bemærk tænkt situation)
>
> 1.) Mit program skal kunne start med forskellige parametre,
> fx. -gui, -nogui, -verbose eller andet

Intet problem "java -jar myjar.jar -gui -verbose" vil virke fint. I din jar fil skal du have en manifest fil hvor din main klasse er angivet; så behøver du ikke specificere main klassen.

> 2.) Jeg bruger pakker til mit program, det kunne være pakke_laf.jar,
> pakke_andet.jar, disse skal inkluderes i min Jar-fil så programmet kan finde
> dem

Jeg mener det er muligt i en nyere jar fil specifikation, omend på en avanceret måde. Har dog ikke prøvet dette selv.

> 3.) Jeg bruger også et par billede-ikoner i mit program, disse skal derfor
> også med

Fint nok. Brug myobject.getClass().getResourceAsStream("filenamesomewhereinthesamejarasmyobjectsclass")
eller Class.getResource(url)

> 4.) Jeg har opdelt mine .class filer i forskellige mapper efter hvad de er
> til, dette er for at holde styr på dem, så disse skal selvfølgelig også
> kunne findes af programmet

..class filerne bliver loadet automatisk af class loaderen. Hvis du selv skal til at manipulere så brug ovenstående, eller selv lave en class loader, eller selv undersøge jar filen (der 'blot' er en zip fil med et bestemt specifikation for nogle filer).

> 5.) ikke vigtigt: Kan man give en Jar-fil et ikon?

Nej. Men du kan i f.eks. windows lave en genvej til en jarfil med et ikon. Samme kan gøres i de forskellige window managers i xwindows.

> Jeg prøvede jar -help men fik ikke ret meget ud af hjælpe teksten

Niks. Du skal finde det du vil vide i jar tutorialen på suns side

http://java.sun.com/docs/books/tutorial/jar/index.html

vh. ld

Jonathan Stein (05-02-2003)
Kommentar
Fra : Jonathan Stein


Dato : 05-02-03 00:22

M_abs wrote:

> 2.) Jeg bruger pakker til mit program, det kunne være pakke_laf.jar,
> pakke_andet.jar, disse skal inkluderes i min Jar-fil så programmet kan finde
> dem

Et alternativ kunne være at pakke disse jar-filer ud og lægge det hele i én
samlet jar-fil.

M.v.h.

Jonathan

--
Nyt alternativ til egen server: JSP Enterprise hotel med adgang til
Enterprise Java Beans, egen Java Virtual Machine og egen IP-adresse
(giver mulighed for eget SSL-certifikat).
http://www.jsp-hotel.dk/



Karl Peder Olesen (05-02-2003)
Kommentar
Fra : Karl Peder Olesen


Dato : 05-02-03 17:21

>M_abs wrote:
>
>> 2.) Jeg bruger pakker til mit program, det kunne være pakke_laf.jar,
>> pakke_andet.jar, disse skal inkluderes i min Jar-fil så programmet kan finde
>> dem
>
> Et alternativ kunne være at pakke disse jar-filer ud og lægge det hele i én
>samlet jar-fil.
>
> M.v.h.
>
> Jonathan

Det er min erfaring at Jonathans forslag er lettest at have med at
gøre. Alternativet er at de "fremmede" jar-filer skal ligge i samme
folder som din egen jar-fil. Så vidt jeg husker skal man angive en
slags classpath til de "fremmede" jar-filer i manifest filen. Det
skulle være beskrevet i Suns tutorial (se link i tidligere svar)

mvh
Karl Peder


M_abs (05-02-2003)
Kommentar
Fra : M_abs


Dato : 05-02-03 22:02

> > Et alternativ kunne være at pakke disse jar-filer ud og lægge det hele
i én
> >samlet jar-fil.
> >
> > M.v.h.
> >
> > Jonathan
>
> Det er min erfaring at Jonathans forslag er lettest at have med at
> gøre. Alternativet er at de "fremmede" jar-filer skal ligge i samme
> folder som din egen jar-fil. Så vidt jeg husker skal man angive en
> slags classpath til de "fremmede" jar-filer i manifest filen.

Jeg tror også dette er det nemmeste



Lars Dam (05-02-2003)
Kommentar
Fra : Lars Dam


Dato : 05-02-03 00:27

On Wed, 5 Feb 2003 00:15:52 +0100
Lars Dam <larsdam___YeahNoUnderscores_____@______post2.tele.dk> wrote:

> On Tue, 4 Feb 2003 23:13:57 +0100
> "M_abs" <M_abs@oncable.dk> wrote:
>
> > Der er noget jeg har tænkt over, jeg vil godt bruge en Jar-fil til mit
> > program, når jeg bruger dette vil jeg gerne have flg. opfyldt:

Jeg glemte lige. Hvis du bruger Ant så er det nemt at lave en jar fil, som opfylder de fleste af dine krav, her er et eksempel fra et projekt jeg arbejder på:

--build.xml--
<project name="JVC" default="DeployLocal" basedir=".">
<target name="DeployLocal" depends="BuildJVC">
</target>

<!-- set up paths -->
<target name="Init">
<!-- home of jdk -->
<property name="JdkHome" value="/opt/sun-jdk-1.4.1.01"/>
<!-- where client source files are -->
<property name="SrcDir" value="src"/>
<!-- temp place where stuff will be built -->
<property name="BuildDir" value="../build"/>
<!-- where client resource files are -->
<property name="LibDir" value="lib"/>
<!-- where javadocs will be generated -->
<property name="DocDir" value="../doc"/>
<!-- where built stuff will be stored -->
<property name="DestDir" value="../distribution"/>
</target>

<!-- cleans up, and creates temp dirs -->
<target name="Clean" depends="Init">
<delete dir="${BuildDir}"/>
<mkdir dir="${BuildDir}"/>
<mkdir dir="${DestDir}"/>
</target>

<!-- compile, build jvc.jar, and javadoc, also perform backup of the entire project -->
<target name="BuildJVC" depends="Init,Clean">
<antcall target="BuildNumber"/>
<javac srcdir="${SrcDir}" destdir="${BuildDir}"/>
<jar destfile="${DestDir}/jvc.jar" manifest="mainclass.mf" index="true" >
<fileset dir="${BuildDir}"/>
<fileset dir="${LibDir}"/>
</jar>
<delete dir="${DocDir}"/>
<mkdir dir="${DocDir}"/>
<javadoc packagenames="jvc.*"
sourcepath="${SrcDir}"
destdir="${DocDir}"
access="public">
</javadoc>
<zip zipfile="${DestDir}/jvcdocs.zip" basedir="${DocDir}"/>
<antcall target="Backup"/>
</target>

</project>
--t--
filen er 'barberet' ned. Læg mærke til '<jar...>' kommandoen, som laver en jvc.jar fil, bruger filen 'mainclass,mf' som manifest fil, og laver et index i jarfilen. Indholdet af jarfilen er ellers alt hvad der ligger i build dir (*.class file) og i lib dir(*.gif, hjælp o.a. binæere støtte filer).

Indhold af mainclass.mf ser sådan ud:

--mainclass.mf--
Main-Class: jvc.JVC


----
(bemærk der er nogle tomme linier)

vh. ld

Søg
Reklame
Statistik
Spørgsmål : 177492
Tips : 31966
Nyheder : 719565
Indlæg : 6408466
Brugere : 218886

Månedens bedste
Årets bedste
Sidste års bedste