ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
385
385
EMPFEHLEN
-
05.11.07 11:26 #1
Hallo zusammen.
folgendes Problem.
ich habe in Java in kleineres Prgromm geschrieben (Enwicklungsumgebung: Eclipse).
Habe mir dann mit Ecplise ein Jar-Archiv exportieren lassen.
Dieses möchte ich jetz gerne ausführen (nicht entpacken, das funktioniert einwandfrei)
in dem archi befinden sich folgende dateien:
KmAbrechnung$1.class
KmAbrechnung$2.class
KmAbrechnung$3.class
KmAbrechnung.class
KmAbrechnung.java
.classpath
.project
außerdem ein ordner "META-INF" mit folgenen dateien
MANIFEST.MF
REFACTORING".XML
bei einem einfachem doppelklick erscheint folgende fehlermeldung:
failed to load Main-Class manifest attribute from (dann folgt der pfad und name des aarchives)
der quellcode meines Programmes sieht folgender maßen aus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Enumeration; import java.util.Hashtable; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextArea; import javax.swing.JTextField; public class KmAbrechnung extends JFrame { private static final long serialVersionUID = -6909814504886095068L; JButton button_useranlegen; JButton button_daten_ausgeben; JButton button_buchen; JButton button_load; JButton button_save; JTextField tx_fahrer; JTextArea tx_info; JTextField tx_beifahrer_1; JTextField tx_beifahrer_2; JTextField tx_beifahrer_3; JTextField tx_beifahrer_4; JTextField tx_km; JLabel lb_Fahrer; JLabel lb_aenderung; JLabel lb_beifahrer; JLabel lb_info; static Hashtable<String, Integer> ht = new Hashtable<String, Integer>(); public KmAbrechnung() { this.getContentPane().setLayout(null); this.initWindow(); this.addWindowListener(new WindowListener() { public void windowClosed(WindowEvent arg0) { } public void windowActivated(WindowEvent e) { } public void windowClosing(WindowEvent e) { System.exit(0); } public void windowDeactivated(WindowEvent e) { } public void windowDeiconified(WindowEvent e) { } public void windowIconified(WindowEvent e) { } public void windowOpened(WindowEvent e) { } }); } protected void initWindow() { // Instanzieren: lb_Fahrer = new JLabel("Fahrer:"); lb_aenderung = new JLabel("gefahrene KM:"); lb_beifahrer = new JLabel("Beifahrer:"); lb_info = new JLabel("Info:"); tx_fahrer = new JTextField(); tx_info = new JTextArea(); tx_beifahrer_1 = new JTextField(); tx_beifahrer_2 = new JTextField(); tx_beifahrer_3 = new JTextField(); tx_beifahrer_4 = new JTextField(); tx_km = new JTextField(); button_useranlegen = new JButton("Benutzer anlegen"); button_daten_ausgeben = new JButton("Kontostände"); button_buchen = new JButton("Buchen"); button_useranlegen.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { button_useranlegenClicked(); } }); button_buchen.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { button_buchenClicked(); } }); // Positionen festlegen lb_Fahrer.setBounds(5, 5, 50, 25); tx_fahrer.setBounds(5, 35, 270, 25); lb_aenderung.setBounds(5, 65, 100, 25); tx_km.setBounds(5, 95, 270, 25); lb_info.setBounds(5, 200, 100, 25); lb_beifahrer.setBounds(350, 5, 100, 25); tx_info.setBounds(5, 225, 620, 200); button_buchen.setBounds(55, 165, 150, 30); button_useranlegen.setBounds(365, 165, 150, 30); tx_beifahrer_1.setBounds(350, 35, 270, 25); tx_beifahrer_2.setBounds(350, 65, 270, 25); tx_beifahrer_3.setBounds(350, 95, 270, 25); tx_beifahrer_4.setBounds(350, 125, 270, 25); // Elemente dem Fenster hinzufügen: ; this.getContentPane().add(lb_Fahrer); this.getContentPane().add(lb_beifahrer); this.getContentPane().add(lb_info); this.getContentPane().add(tx_fahrer); this.getContentPane().add(tx_info); this.getContentPane().add(tx_beifahrer_1); this.getContentPane().add(tx_beifahrer_2); this.getContentPane().add(tx_beifahrer_3); this.getContentPane().add(tx_beifahrer_4); this.getContentPane().add(lb_aenderung); this.getContentPane().add(tx_km); this.getContentPane().add(button_useranlegen); this.getContentPane().add(button_buchen); this.setSize(650, 500); button_loadClicked(); } public void button_useranlegenClicked() { tx_info.setText(""); if (ht.containsKey(tx_fahrer.getText())) { tx_info.setText("Benutzer bereits vorhanden\n"); } else { if (!tx_fahrer.getText().equals("")) { ht.put(tx_fahrer.getText(), 0); tx_info.setText("Konto angelegt!\n"); } else { tx_info.setText("Erst Namen eintragen!\n"); } } button_daten_ausgebenClicked(); button_saveClicked(); } public void button_loadClicked() { tx_info.setText(""); BufferedReader in = null; String line = null; try { in = new BufferedReader(new FileReader( "T:\\Kleeschulte\\fahrgemeinschaft\\konten.txt")); while ((line = in.readLine()) != null) { String s; s = in.readLine(); try { int i = Integer.parseInt(s); ht.put(line, i); } catch (NumberFormatException e) { tx_info.append("Datei beschädigt\n"); } } } catch (FileNotFoundException ex) { tx_info.append("Datei nicht gefunden:\n"); } catch (IOException ex) { tx_info.append("IOException, Grund:\n" + ex + "\n"); } finally { if (in != null) { try { in.close(); } catch (Exception ignored) { } } } if (!ht.isEmpty()) { Enumeration en = ht.keys(); while (en.hasMoreElements()) { String key = (String) en.nextElement(); Object val = ht.get(key); String a = val.toString(); tx_info.append("Der Kontostand von " + key + " beträgt :" + a + " km\n"); } } else { tx_info.append("Keine Konten erstellt!\n"); } } public void button_saveClicked() { if (!ht.isEmpty()) { Enumeration en = ht.keys(); try { FileWriter fw = new FileWriter( "T:\\Kleeschulte\\fahrgemeinschaft\\konten.txt"); while (en.hasMoreElements()) { String key = (String) en.nextElement(); Object val = ht.get(key); String a = val.toString(); fw.write(key + "\n"); fw.write(a + "\n"); } fw.close(); } catch (IOException ex) { tx_info.append("Fehler: " + ex + "\n"); } tx_info.append("Daten gespeichert!\n"); } else { tx_info .append("Es sind keine Konten vorhanden, die gespeichert werden könnten\n"); } } public void button_daten_ausgebenClicked() { if (!ht.isEmpty()) { Enumeration en = ht.keys(); while (en.hasMoreElements()) { String key = (String) en.nextElement(); Object val = ht.get(key); String a = val.toString(); tx_info.append("Der Kontostand von " + key + " beträgt :" + a + " km\n"); } } else { tx_info.append("Keine Konten erstellt!\n"); } } public void button_buchenClicked() { tx_info.setText(""); int beifahrer = 0; StringBuffer ausgabe = new StringBuffer(); String s = ""; int km; if (ht.containsKey(tx_fahrer.getText())) { try { s = tx_km.getText(); km = Integer.parseInt(s); s = ""; int falscherName = 0; // Bearbeitung der Konten der Beifahrer // Beifahrer1 if (!tx_beifahrer_1.getText().equals("")) { if (ht.containsKey(tx_beifahrer_1.getText())) { int alt; beifahrer += 1; alt = ht.get(tx_beifahrer_1.getText()); alt = alt - km; ht.remove(tx_beifahrer_1.getText()); ht.put(tx_beifahrer_1.getText(), alt); } else { tx_info .append("Dem Namen des 1. Beifahrers konnte kein Konto zugeordnet werden \n"); ausgabe.append(s); falscherName += 1; } } // Beifahrer2 if (!tx_beifahrer_2.getText().equals("")) { if (ht.containsKey(tx_beifahrer_2.getText())) { int alt; beifahrer += 1; alt = ht.get(tx_beifahrer_2.getText()); alt = alt - km; ht.remove(tx_beifahrer_2.getText()); ht.put(tx_beifahrer_2.getText(), alt); } else { tx_info .append("Dem Namen des 2. Beifahrers konnte kein Konto zugeordnet werden \n"); ausgabe.append(s); falscherName += 1; } } // Beifahrer3 if (!tx_beifahrer_3.getText().equals("")) { if (ht.containsKey(tx_beifahrer_3.getText())) { int alt; beifahrer += 1; alt = ht.get(tx_beifahrer_3.getText()); alt = alt - km; ht.remove(tx_beifahrer_3.getText()); ht.put(tx_beifahrer_3.getText(), alt); } else { tx_info .append("Dem Namen des 3. Beifahrers konnte kein Konto zugeordnet werden \n"); ausgabe.append(s); falscherName += 1; } } // Beifahrer4 if (!tx_beifahrer_4.getText().equals("")) { if (ht.containsKey(tx_beifahrer_4.getText())) { int alt; beifahrer += 1; alt = ht.get(tx_beifahrer_4.getText()); alt = alt - km; ht.remove(tx_beifahrer_4.getText()); ht.put(tx_beifahrer_4.getText(), alt); } else { tx_info .append("Dem Namen des 4. Beifahrers konnte kein Konto zugeordnet werden \n"); ausgabe.append(s); falscherName += 1; } } // Kontostand des Fahrers bearbeiten int alt = ht.get(tx_fahrer.getText()); alt = alt + (km * beifahrer); ht.remove(tx_fahrer.getText()); ht.put(tx_fahrer.getText(), alt); // Ausgabe in die Infobox if (falscherName == 0 && beifahrer == 0) { tx_info .append("Bitte tragen sie mindestens einen Beifahrer ein\n"); } if (beifahrer != 0 && falscherName != 0) { tx_info .append("Es wurden nur die gültigen Konten bearbeitet...\nBuchung erfolgt!\n"); } if (beifahrer != 0 && falscherName == 0) { tx_info.append("Buchung erfolgt!\n"); } if (beifahrer == 0 && falscherName != 0) { tx_info .append("Da keinem der angegebenen Namen ein gültiges Konto zugeordnet werden konnte,\nist keine Buchung erfolgt!\n"); } // tx_info.setText(s + s2); } catch (NumberFormatException e) { tx_info .append("Das Feld \"gefahrene KM\" akzeptiert nur Zahleneingaben und darf nicht leer sein\n"); } } else { // hier die ausgabe wenn kein erlaubter fahrer vorhanden tx_info.append("Bitte geben Sie einen gültigen Fahrer an\n"); } button_daten_ausgebenClicked(); button_saveClicked(); } }
Das programm lässt sich ohne Probleme aus der Ecplise umgebung heraus starten und wirft keinerlei Execption.
Ich arbeite Unter windos XP Professional.
wünschenswärt wäre wenn sich das jar file nachher nicht nur unter Windows sonder auch unter anderen OS öffnen lässt (Java => Plattformunabhängigkeit) ist aber vorerst nicht unbedingt notwendig.
Vielen Dank für eure Hilfe
gruß Johannes
ich hoffe ich habe alle wichtigen infos genanntWenn mein Beitrag dir geholfen hat, würde ich mich sehr über eine positive Bewertung oder ein Danke freuen
Gruß Johannes
::: Homepage :::
-
05.11.07 11:40 #2MeinerEiner_80 Tutorials.de Gastzugang
Moin!
Sieht wohl so aus, als würde die Klasse mit der main Methode nicht gefunden. Und auch in deinem Quellcode kann ich auch keine solche Methode finden.. Also, wo hast du die versteckelt?
*grüssle*
MeinerEiner
-
05.11.07 11:43 #3
*g*
so etwas in der richtung habe ich mir schon gedacht!
um ganz ehrlich zu sein!
ich hab keiner geschrieben, da ich nciht wusste, was dort genau hinein soll:
was mich sehr wundert, da das Prgrommm trotzdem läuft.
das hier ist meine erste übungaufgabe, die eine Fensteranwendung und keine Konsolenanwedung ist!
Daher dachte ich das es daran liegen könnte, dass die Main-methode überlfüssig ist!
edit: habe gerade eine leere main-methode ergänzt:
das ergebniss war leider das selbe......Geändert von Johannes7146 (05.11.07 um 11:47 Uhr)
Wenn mein Beitrag dir geholfen hat, würde ich mich sehr über eine positive Bewertung oder ein Danke freuen
Gruß Johannes
::: Homepage :::
-
05.11.07 12:26 #4MeinerEiner_80 Tutorials.de Gastzugang
Es ist ne Weile her, seit ich zuletzt Eclipse genutzt habe, aber Eclipse scheint sich ja wohl an der fehlenden main Methode nicht zu stören..
Aber das jar- Archiv benötigt eine, wenn es gestartet werden soll.
Soweit ich dein Programm überblicke, müsste in dieser Methode nur ein KmAbrechnung Objekt erstellt werden, und dieses dann auch sichtbar (setVisible(true)) gestellt werden.
In der Manifest Datei muss sich dann auch ein Eintrag "Main-Class" befinden, in dem eben die Klasse mit der Main Methode angegeben ist. Bei der Erstellung des Archivs über Eclipse kann man das aber mit angeben..
*grüssle*
MeinerEiner
-
05.11.07 14:19 #5
also...
ich habe folgendes ergänzt:
Code :1 2 3 4
public static void main(String[] args) { KmAbrechnung a = new KmAbrechnung(); a.setVisible(true); }
leider keinen Erfolg geerntet....
auch unter den einstellungen habe ich nichts passendes gefunden.Geändert von Johannes7146 (05.11.07 um 14:37 Uhr) Grund: Tippfehler
Wenn mein Beitrag dir geholfen hat, würde ich mich sehr über eine positive Bewertung oder ein Danke freuen
Gruß Johannes
::: Homepage :::
-
05.11.07 15:18 #6MeinerEiner_80 Tutorials.de Gastzugang
Schau mal hier:
http://www.cs.laurentian.ca/badams/c...-tutorial.html
Hier steht eigentlich ziemlich genau, was man tun muss, um ein lauffähiges jar-Archiv von einer Applikation zu bekommen..
*grüssle*
MeinerEiner
Ähnliche Themen
-
Für ein Online-Archiv soll ein (kleines) Handbuch erstellt werden
Von Thomas_Jung im Forum Stellenangebote (entgeltlich)Antworten: 1Letzter Beitrag: 18.11.09, 08:59 -
Exchange/AD: Gruppe erstellt, wird aber in globaler Adresseliste nicht angezeigt
Von Mstricha im Forum Microsoft WindowsAntworten: 1Letzter Beitrag: 02.09.08, 00:54 -
host erstellt, aber seite läd nicht
Von dieKitty im Forum Hosting & WebserverAntworten: 1Letzter Beitrag: 16.09.07, 03:24 -
PHP erstellt Bilder, löscht diese aber nicht.
Von Tix im Forum PHPAntworten: 12Letzter Beitrag: 15.04.06, 23:00 -
GD Library - Keine Fehlermeldung, aber Thumbnail wird nicht erstellt
Von Sebs im Forum PHPAntworten: 11Letzter Beitrag: 27.01.05, 15:42





Zitieren
Login





