2013-08-20 3 views
1

im делает программу для чтения TIFF, которые называются imagename.00x, где x - последовательность страницы!работает от eclipse работает отлично, но из jar, return error JAVA

проблема, запустив его из затмения, он отлично работает, читать directoy, получить список файлов, показать первый и я могу использовать Previosly и кнопку Далее, чтобы показать другую страницу ..

но когда я сделал .jar и попытался показать изображение (он работает, чтобы проверить, существует ли directoy/число «Matricula», проблема в том, когда он находит и пытается нарисовать, я думаю), он возвращает эту ошибку:

Exception in thread "AWT-EventQueue-0" java.util.ServiceConfigurationError: java 
x.imageio.spi.ImageReaderSpi: Provider com.sun.media.imageioimpl.plugins.jpeg.CL 
ibJPEGImageReaderSpi could not be instantiated: java.lang.IllegalArgumentExcepti 
on: vendorName == null! 
     at java.util.ServiceLoader.fail(Unknown Source) 
     at java.util.ServiceLoader.access$100(Unknown Source) 
     at java.util.ServiceLoader$LazyIterator.next(Unknown Source) 
     at java.util.ServiceLoader$1.next(Unknown Source) 
     at javax.imageio.spi.IIORegistry.registerApplicationClasspathSpis(Unknow 
n Source) 
     at javax.imageio.spi.IIORegistry.<init>(Unknown Source) 
     at javax.imageio.spi.IIORegistry.getDefaultInstance(Unknown Source) 
     at javax.imageio.ImageIO.<clinit>(Unknown Source) 
     at certidoesOrganizado.GeraImagem.<init>(GeraImagem.java:25) 
     at certidoesOrganizado.gui.EnviaLink(gui.java:267) 
     at certidoesOrganizado.gui.geraListaArquivos(gui.java:233) 
     at certidoesOrganizado.gui.limpaCaracteres(gui.java:194) 
     at certidoesOrganizado.gui.confereCaracteres(gui.java:155) 
     at certidoesOrganizado.gui$2.actionPerformed(gui.java:77) 
     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.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour 
ce) 
     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) 
     ... more lines 

GeraImagem.java, где он получает PATH для файла TIFF и экран для редактирования меток

package certidoesOrganizado; 

    import java.awt.*; 
    import java.awt.image.BufferedImage; 
    import java.io.File; 
    import java.io.IOException; 

    import javax.imageio.ImageIO; 
    import javax.swing.*; 

    public class GeraImagem extends Component { 

     /** 
      *  
      */ 
     public static final long serialVersionUID = -6532574194776055714L; 
     Image img; 
     BufferedImage resizedImage = null; 


     public void paint(Graphics g) { 
      g.drawImage(img, 0, 0, null); 
     } 

     public GeraImagem(String novolink, gui tela) { 
      try { 
       img = ImageIO.read(new File(novolink)); 
       img = resizeImage(img, 380, 518); 

       tela.alteraLabel(img); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

     } 

     public Dimension getPreferredSize() { 
      if (img == null) { 
       return new Dimension(100, 100); 
      } else { 
       return new Dimension(img.getWidth(null), img.getHeight(null)); 
      } 
     } 

     // Metodo usado para fazer o resize 
     public Image resizeImage(Image originalImage, int biggerWidth,int biggerHeight) { 
      try { 
       int type = BufferedImage.TYPE_INT_ARGB; 

       resizedImage = new BufferedImage(biggerWidth, biggerHeight, type); 
       Graphics2D g = resizedImage.createGraphics(); 

       g.setComposite(AlphaComposite.Src); 
       g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR); 
       g.setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY); 
       g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); 

       g.drawImage(originalImage, 0, 0, biggerWidth, biggerHeight, null); 
       g.dispose(); 
      } catch (SecurityException e) { 
       JOptionPane.showMessageDialog(null, "Erro ao converter imagem!", 
         "Erro", JOptionPane.ERROR_MESSAGE); 
      } 
      return resizedImage; 
     } 
    } 
+0

ли вы сравнили свой путь класса командной строки с классом путь в Eclipse? Похоже, что ваш запуск командной строки не находит необходимый класс. – chrylis

+0

Используете ли вы другую версию Java в Eclipse и в командной строке, например. Oracle JDK в Eclipse и OpenJDK в командной строке? – rec

+0

[Настоящая статья] (https://www.java.net//node/695773) может быть полезна. – chrylis

ответ

Смежные вопросы