• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

java programm nutzbar machen

Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
irgendwo hier habe ich schonmal eine Diskussion darüber gesehen, wie man selbstgeschriebenen Java-Code so gestalten kann, dass jeder Windowsrechner (oder sogar Systemunabhängig) das Java-Prog ausführen kann. Leider finde ich den Thread nicht mehr, weshalb ich diese Frage nochmal an euch richte.

Mich würde an dieser Stelle auch mal allgemein interessieren, wie man so etwas schnell in eine .exe oder .app oder für Linux ausführbare Datei verwandelt (bzw. eine zusätzliche Datei entsprechend anlegt).
Was muss man in Linux dafür eigentlich tun? Reicht da ein Shellscript aus?

Ich hab nämlich ein kleines Progrämmchen geschrieben, was ich mit der Welt teilen möchte. Aber außer direkt durch die .java-Dateien oder das eclipse-Projekt krieg ichs nich hin... :8[: plz help!
 

RRA^StArFiRe

Guest
gibt sowas wie java2exe, aber die dinger sind meist plattformabhängig.

kannst dir auch ne .bat datei schreiben mit "java.exe bla.class"
der eigentliche sinn von java ist aber wohl eher das als applet zu kompilieren und in den browser einzubinden.
 

Shihatsu

Administrator
Mitglied seit
26.09.2001
Beiträge
49.615
Reaktionen
10.252
geht auch einfacher: in eclipse rechtsclick auf die klasse, export -> jar file, frtig
 
Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
edit2:
also hab das schon mit eclipse zum jar gemacht. funktioniert aber nicht ganz so, wie erwartet:

1) normal auf konsole mit java -jar datei.jar geht
2) scheinbar klappt es nicht bei jedem so (bei meinem Bruder z.B. nicht. Der kriegt nen "kann nicht zugreifen" fehler)
3) wenn ich eine bat schreibe
Code:
java -jar datei.jar
:end
öffnet die bat kurz eine konsole und ist dann fertig mit mir... was mach ich dabei falsch?
 

Shihatsu

Administrator
Mitglied seit
26.09.2001
Beiträge
49.615
Reaktionen
10.252
jar dateien kannst du immer per doppelklick ausführen, wenn java installiert und java mit dem dateityp .jar verknüpft ist (extras -> ordneroptionen -> dateitypen). das problem deines bruders scheint ein anderes zu sein. er soll das scheiss ding einfach doppelklicken, nachdem er die dateizuordnung überprüft hat.
 
Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
dann führt er es aber trotzdem nicht aus... wie sag ich ihm denn, dass er .jars immer mit "java -jar" öffnen soll und nicht nur mit java.exe?
 

Bronzegraf

Guest
Du musst in der manifest.mf Datei noch die Main-Class definieren.
 
Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
bereits erledigt in der form:
Code:
Manifest-Version: 1.0
Main-Class: package.startmeGUI
 

Shihatsu

Administrator
Mitglied seit
26.09.2001
Beiträge
49.615
Reaktionen
10.252
Dazu zwingt einen Eclipse eh ;)
und sholvar, wenn du java -jar aufrufst, passiert genau das, was passiert wenn du .jar mit der java.exe verknüpft hast - das jar wird an java.exe übergeben. also scheint mir bei der dateizuordnung irgendwas im arsch zu sein.
 
Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
ich bin mir relativ sicher, dass das an winace liegt. :(

naja, egal.
Mal noch ne kleine Frage. Ich hab die Bilder für Background und Logo per Import->File System reingeholt, was mir irgendwie suboptimal scheint. Zum einen meckert Eclipse rum, wenn man irgendwas an der Ursprünglichen Datei ändert (die komischerweise an ihrem Platz bleibt und gleichzeitig noch ins package kopiert wird) und zweitens mag er die Bilder trotz Vorhandensein im .jar nicht mit laden und anzeigen...

Um das ImageObjekt des jeweiligen Bildes zu erzeugen, nehme ich einfach:
Code:
(JFrame).getToolkit().getImage("logo.JPG");
z.B.

1) wie sag ich ihm, dass er nur mal ins jar gucken muss, denn dort liegen die bilder rum...

2) Und natürlich nicht zu vergessen, wie krieg ich die importiert, ohne das sich Eclipse weiterhin für das "Original" interessiert?

3) falls ihr pokert, könnt ihr ja mal nen bissl mit rumspielen. Is nen preflop Trainer: mein Hochschulverzeichnis
einfach die einzige Datei auswählen, die da rumliegt. :top2: (viel kritik bitte per PN oder ICQ)
 
Mitglied seit
04.08.2002
Beiträge
1.391
Reaktionen
0
Could not find the main class. Program will exit.
 

haschischtasche

Ährenpenis
Mitglied seit
28.09.2002
Beiträge
37.325
Reaktionen
7.916
funzt bei mir problemlos, allerdings halte ich sowas fuer sinnfrei. das kann man auch einfach in spielen trainieren wo man eh ne table neben sich liegen hat. :>
 

Bronzegraf

Guest
Original geschrieben von Sholvar
1) wie sag ich ihm, dass er nur mal ins jar gucken muss, denn dort liegen die bilder rum...

Beschaff Dir über den ClassLoader die URL zum Bild. Die kannst Du dann dem Toolkit übergeben.
 
Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
über welchen ClassLoader?

(new ClassLoader(){}).getResource("Background.JPG") <- der Ausdruck ist null...

Ich hab echt keinen Plan, was du mir jetzt für einen Hinweis geben möchtest... :bored:
 

Bronzegraf

Guest
Nimm den Classloader mit dem eine Klasse aus Deinem jar geladen wurde. Beispielsweise von der Main-Class. Also entweder via "package.startmeGUI.class.getClassLoader()" oder wenn Du das Bild in einer Member-Methode lädst: "getClass().getClassLoader()"...
 
Mitglied seit
01.06.2007
Beiträge
761
Reaktionen
0
Code:
public static final ImageIcon createImageIcon(String s)
    {
        return new ImageIcon(createImage(s));
    }

    public static final Image createImage(String s)
    {
        URL url = Tools.class.getResource(s);
        if(url != null)
            return Toolkit.getDefaultToolkit().createImage(url);
        else
            return null;
    }

In eine Klasse "Tools" packen (ansonsten den Tools.class call entsprechend abändern). "String s" sollte dann ein Pfad zu dem Bild im jar-file sein relativ zu der genannten Tools-Klasse.

Wenn die Tools-Klasse also im package de.irgendwas.hallo ist und das Bild in de.irgendwas.hallo.images, dann sollte man "images/MeinBild.jpg" übergeben.

Um aus einem jar eine exe zu machen benutze ich http://jsmooth.sourceforge.net/
 
Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
Danke Hans!
Es klappt jetzt, wie man hier auch selbst gucken kann. Aber komischerweise geht es jetzt nicht mehr, wenn ich es in Eclipse starten möchte. Dann kriege ich für die URLs immer NullPointerExceptions.
Kann sich einer vorstellen, warum der ganze Prozess da nicht funktioniert?
da würde getToolkit().getImage("Logo.JPG"); funktionieren.
 
Oben