09. juli 2007 - 17:00Der er
67 kommentarer og 1 løsning
jar file
Jeg har lavet en jar file vha den commando "C:\Egen_fil\JBuilder>jar cmf manifest.mf deos_tt3.jar jaajaajaa" Og når jeg bruger commandoen "jar tf deos_tt3" Kan jeg se at min jar file indeholder alle de filer jeg har i mappen jaajaajaa. Problemet er når jeg bruger commandoen "C:\Egen_fil\JBuilder>java jar deos_tt3.jar" får jeg den exception "Exception in thread "main" java.lang.NoClassDefFoundError: jar"
Og når jeg double klikker på jar filen "deos_tt3" skriver Java Virtual Machine Launcher "Could not fint the main class. Program will exit"
er der nogen der har kendskab til det?
Jeg vil lige tilføre at min manifest file indeholder Manifest-Version: 1.0 Main-Class: ttteer.class
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
til Mikkelbm. Sådan ser det ud når jeg kører det med begge commandoer
C:\Egen_fil\JBuilder>java jar deos_tt3.jar Exception in thread "main" java.lang.NoClassDefFoundError: jar
C:\Egen_fil\JBuilder>java -jar deos_tt3.jar Exception in thread "main" java.lang.NoClassDefFoundError: ttteer
Og min manifest file ser sådan herud(Og jeg er sikker på at den ender med et linje skift siden at jeg bruger jedit) Manifest-Version: 1.0 Main-Class: ttteer
Jeg prøvede Main-Class: ttteer til at starte med og det hjalp heller ikke. når jeg buger "C:\Egen_fil\JBuilder>jar tf deos_tt3.jar" kan jeg se at jar filen indeholder alle de filer jeg skal have.
Og forresten når jeg prøver at køre jar filen udenfor kommandoprompt, kommer der en popup med den besked java virtual machine launcher could not find the main class. Program will exit
Jeg bruger begge kommandoer er som jeg er usikker på hvilken en af dem er den rigtigt. Og java -jar giver følgende C:\Egen_fil\JBuilder>java -jar deos_tt3.jar Exception in thread "main" java.lang.NoClassDefFoundError: ttteer
jeg er sikker på at den er min, her er dens indeholde Manifest-Version: 1.0 Ant-Version: Apache Ant 1.6.5 Created-By: Deo Musiige (Micro-Pc) Main-Class: ttteer
Nej - det tror jeg ikke, for så langt nåer den ikke
Prøv at lave en simpel txt-fil hvor du ikke skriver andet på første linie end: Main-Class: ttteer derefter laver du et linieskift - gem filen i samme dir som ttteer.class
Lav jar-fil på følgende måde: jar cvmf manifest.txt deos_tt3.jar *
tak for det men nu får jeg bare flere fejl. Ser de dig noget
C:\Egen_fil\JBuilder\jaajaajaa>java -jar deos_tt3.jar Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/com m/SerialPortEventListener at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at ttteer.<init>(ttteer.java:66) at ttteer$4.run(ttteer.java:254) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Og ttteer.java:66 er linjen i midten i koden nedunder public ttteer(){ read = new SimpleRead(this); } Simpleread læser fra serial porten hvergang der er noget data
ttteer$4.run(ttteer.java:254) er ttteer application = new ttteer() som i koden findes i main metoden nedunder public static void main(String[] args) throws IOException{
SwingUtilities.invokeLater(new Runnable() { public void run() { try{ ttteer application = new ttteer(); application.getJFrame().setVisible(true); }catch(IOException w){
Jeg får applicationen frem men så kommer disse fejl C:\Egen_fil\JBuilder\jaajaajaa>java -jar deos_tt3.jar Error loading SolarisSerial: java.lang.UnsatisfiedLinkError: no SolarisSerialPar allel in java.library.path Caught java.lang.UnsatisfiedLinkError: com.sun.comm.SolarisDriver.readRegistrySe rial(Ljava/util/Vector;Ljava/lang/String;)I while loading driver com.sun.comm.So larisDriver Error loading SolarisSerial: java.lang.UnsatisfiedLinkError: no SolarisSerialPar allel in java.library.path Caught java.lang.UnsatisfiedLinkError: com.sun.comm.SolarisDriver.readRegistrySe rial(Ljava/util/Vector;Ljava/lang/String;)I while loading driver com.sun.comm.So larisDriver
Nu er der ik flere fejl. problemet før var at jeg ik brugt en windows comm.jar (tror jeg). Men problemet nu er at jeg kan ik læse eller skrive til porten
Når jeg prøver på send til porten får disse fejl C:\Egen_fil\JBuilder\jaajaajaa>java -jar deos_tt3.jar Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at SimpleRead.writeToport(SimpleRead.java:115) at ttteer$1.actionPerformed(ttteer.java:143) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Og SimpleRead.writeToport(SimpleRead.java:115) er outputStream.write(sent_byte); //her skriver jeg på porten
ttteer$1.actionPerformed(ttteer.java:143) read.writeToport();//her læser jeg fra porten
Jeg kan ikke finde årsagen til den... her er koden til ttteer og SimpleRead måske kan du nemme se det /* import java.awt.event.KeyEvent; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.Event; import java.awt.BorderLayout;*/ import java.awt.*; import java.awt.event.*;
private JMenuItem getSendMenuItem() throws IOException{ //Readfile2 sendfile = new Readfile2(); //makes an object of the class that opens and sends the file contents //if (sendMenuItem == null) { //sendMenuItem = new JMenuItem(); sendMenuItem.setText("send file"); //throw IOException sendMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //gennemse.setVisible(true); //try{//gets the method that loads data to the serial port //Readfile2.send(); read.writeToport(); //}catch(IOException d){
switch(event.getEventType()) { case SerialPortEvent.BI: case SerialPortEvent.OE: case SerialPortEvent.FE: case SerialPortEvent.PE: case SerialPortEvent.CD: case SerialPortEvent.CTS: case SerialPortEvent.DSR: case SerialPortEvent.RI: case SerialPortEvent.OUTPUT_BUFFER_EMPTY: break; case SerialPortEvent.DATA_AVAILABLE: //data is available - read it! byte[] readBuffer = new byte[1];
try { inputStream.close(); while (inputStream.available() > 0) { int numBytes = inputStream.read(readBuffer); data = new String(readBuffer); parent.setData(data); System.out.print(data); System.out.print(numBytes); } } catch (IOException e) { //TODO Auto-generated catch block e.printStackTrace(); } break; } try{ inputStream.close(); }catch (IOException e){
} //System.out.print("tst"); } public void writeToport(){
//content = new contents_of_afile(); //makes an object of the contents_of_afile class //browse = new browse11(); String sfile = browse.onBrowseSwing();//gets the method that returns the file name File file = new File(sfile);//get the file to be sent... this is actually supposed to be from browse try{ dataVector = contents_of_afile.getBytesFromFile(file);//the file is loaded in the dataVector } catch(IOException e){
String sfile = browse.onBrowseSwing();//gets the method that returns the file name if(sfile == null) System.out.println("sfile er null");
File file = new File(sfile);//get the file to be sent... this is actually supposed to be from browse if(file == null) System.out.println("file er null");
try{ dataVector = contents_of_afile.getBytesFromFile(file);//the file is loaded in the dataVector } catch(IOException e){
}
if(dataVector == null) System.out.println("dataVector er null");
Jeg skal også lige nævne at kommandoen "java -jar deos_tt3.jar" får applicationen frem men applicationen virker ik som den gør når jeg kører den i JBuilder. Når jeg kører application i JBuilder læser den fra serial porten hvergang der er noget og jeg kan også sende til serial porten fra den.
Når jeg starter applicationen med "java -jar deos_tt3.jar" og prøver at sende noget får jeg den exception Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at SimpleRead.writeToport(SimpleRead.java:113) at ttteer$1.actionPerformed(ttteer.java:138) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
problemet var at jeg havde 2 versioner af java på min pc
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.