"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Java-Programm als .tar-Archiv per Doppelklick starten

t3mp 21.08.2003 - 01:14 642 12
Posts

t3mp

I Love Gasoline
Avatar
Registered: Mar 2003
Location: upstairs
Posts: 6279
wie funktioniert das?
als editor benutze ich sun1studio4 (forte).

alles, was der benutzer dann noch bräuchte um es wie ein normales *.exe-programm starten zu können ist das java2 runtime environment. ;)

:)

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
Zitat von dark_templahr
Java-Programm als .tar-Archiv per Doppelklick starten

das ding muß ein .jar file sein, und eine Application beinhalten (zb MeineMainClass):
public static void main(String args[]) in einer der klassen.

ausserdem brauchst du ein "Manifest.mf" file, mit folgendem inhalt:
Code:
Manifest-Version: 1.0
Main-Class: MeineMainClass

problem: defaultmäßg ist der handler für jar-files das jre das mit windows mitkommt, und das version 1.1.x :(
Bearbeitet von atrox am 21.08.2003, 01:26

t3mp

I Love Gasoline
Avatar
Registered: Mar 2003
Location: upstairs
Posts: 6279
k thx, ich werd's probieren. :)

crashman

OC Addicted
Avatar
Registered: Oct 2001
Location: Vienna
Posts: 891
Falls sune one ant unterstützt und du das jar net jedesmal über die cmd erstellen möchtest könntest du dir ein ant file in der art des unteren schreiben
Code:
<?xml version="1.0"?>
<project name="test" default="compile" basedir=".">
	<description >Ein Test</description>

	<property name="dir.src" value="."/>
	<property name="dir.build" value="ant/build"/>
	<property name="dir.dist" value="ant/dist"/>
	<property name="ProjectMainClass" value="versuche.versuch1"/>
	
	<target name="prepare"
			description="Verzeichnisse anlegen.">
		<mkdir dir="${dir.build}"/>
		<mkdir dir="${dir.dist}"/>
	</target>
	
	<target name="clean"
			description="Alle generierten .class files loeschen.">
		<delete dir="${dir.build}"/>
		<delete dir="${dir.dist}"/>
		<delete dir="ant"/>
	</target>
	
	<target name="compile"
			depends="prepare"
			description="Kompilieren aller Source files.">
		<javac srcdir="${dir.src}" destdir="${dir.build}"/>
	</target>
	
	<target name="jar"
			depends="compile"
			description="Jar File erstellen.">
		<jar	jarfile="${dir.dist}/test.jar" 
				update="false"
				index="true">
			<fileset dir="${dir.build}" includes="**/*.class"/>
			<manifest>
				<attribute name="Main-Class" value="${ProjectMainClass}"/>
			</manifest>
		</jar>
	</target>
	
	<target name="run"
			depends="jar"
			description="Jar file Starten">
		<java jar="${dir.dist}/test.jar" 
           fork="true"
           failonerror="true"
           maxmemory="32m">
           <arg value="-h"/> 
         <classpath>
           <pathelement location="${dir.dist}/test.jar"/>
           <pathelement path="${java.class.path}"/>
         </classpath>
       </java>		
	</target>
	
	<target name="runAndDelete"
			depends="run"
			description="Generiert Jar,startet programm und loescht anschliessend alles wieder">
		<delete dir="ant"/>
	</target>
</project>
Aja für fehler hafte ich net ;)

t3mp

I Love Gasoline
Avatar
Registered: Mar 2003
Location: upstairs
Posts: 6279
das ganze geht mit sun1 eigentlich recht gut... man erstellt ein Jar-"Recipe", wählt die klassen aus die es enthalten soll, das manifest kann man sich generieren lassen und nur die mainclass-zeile muss man selbst dazuschreiben. immer wenn man dann das .jar aktualisieren will, mountet man es über das recipe einfach neu.
trotzdem thx@crashman ;)

@atrox: das ist natürlich ein problem, aber das SUN-JRE1.4.2 ist relativ schnell runtergeladen. wäre sowieso jedem zu empfehlen... na egal. :)

hätte aber zwei neue fragen:

1. kann man im manifest auch ein eigenes Programmicon festlegen?

2. und wie kann ich die standard swing-messageicons aus den joptionpanes (warning, error usw.) für meine eigenen dialogs benutzen?
Bearbeitet von t3mp am 26.08.2003, 14:35

psykoman

Addicted
Avatar
Registered: Dec 2002
Location: Graz
Posts: 376
es gibt soweit ich weis java2exe konverter... da kriegst sogar ne richtige exe, brauchst aber trotzdem java runtime environment...

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
es gibt auch welche, die erzeugen ein exe, ohne daß du ein JRE brauchst; schon getestet: allerdings wird eine simple 50k java class plötzlich 12 mb groß.

crashman

OC Addicted
Avatar
Registered: Oct 2001
Location: Vienna
Posts: 891
naja der hpcompiler von ibm war aber net so schlecht. Nur leider still und leise verstorben :(
Ich würde das mit dem Programmicon über eine verknüpfung regeln. Klicken sie halt net auf das jar file sondern darauf.

t3mp

I Love Gasoline
Avatar
Registered: Mar 2003
Location: upstairs
Posts: 6279
@psykoman: da ist mir die .jar lösung lieber... damit bleibt's auch plattformunabhängig.

trotzdem wär ein link interessant (@atrox). :)

naja eine one-file lösung wär mir schon am liebsten.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
ich glaub das eine ding hieß jetpack oder javapack, und da gab es noch ein anderes...
jedenfalls hab ichs nach dem ausprobieren angewiedert von der platte gelöscht.

t3mp

I Love Gasoline
Avatar
Registered: Mar 2003
Location: upstairs
Posts: 6279
als programmierer sollte man ja immer von der größtmöglichen unfähigkeit seines 'kunden' ausgehen... :D insofern wär das tool schon nützlich. aber es ist natürlich alles andere als elegant.

crashman

OC Addicted
Avatar
Registered: Oct 2001
Location: Vienna
Posts: 891
blöde frage aber hast du schon mal java webstart verwendet ?? Da kannst du zb auch ein icon festlegen welches am desktop erzeugt werden soll. Und es wird bei jedem start abgefragt ob am server eine neuere version des jars liegt. Wäre glaube ich recht ideal für deine zwecke und kaum ein aufwand und updates sind damit null problem.
http://java.sun.com/products/javawe...opersguide.html

psykoman

Addicted
Avatar
Registered: Dec 2002
Location: Graz
Posts: 376
ja java web start is echt net schlecht... hätt eine super fachsbereicharbeit dazu :D
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz