2015-02-11 3 views
3

У меня возникла проблема с экспортом моего java-файла в исполняемый файл jar. В eclipse он отлично работает, но когда я его экспортировал, он не работает.Проект Java, работающий над Eclipse, но не работающий при экспорте в исполняемый файл jar

Я уже попробовал (Java -jar myJar.jar), чтобы получить журнал, но он говорит «Unnable для доступа к файлу банка»

Я думаю, что проблема из-за этого:

java.net.URL logoOneUrl = getClass().getResource("/logo.png"); //already tried without the "/" and it doesn't work withouth the "/" 
Icon logoOne = new ImageIcon(logoOneUrl) 

Потому что когда я положил его в комментарии //, когда я экспортировал его, но без изображения.

Я также пробовал этот способ: java.net.URL logoScience = getClassLoader().getResource("logo.png");, но он не работает. Что я делаю неправильно? Как экспортировать исполняемый файл jar с изображением на JLabel?

(Это то, что я есть на моих JLabels) JLabel lblImgLogin = new JLabel(logoOne);

UPDATE

ImageIcon icon = createImageIcon("/logo.png","a pretty but meaningless splat");

protected ImageIcon createImageIcon(String path,String description) { java.net.URL imgURL = getClass().getResource(path); if (imgURL != null) { return new ImageIcon(imgURL, description); } else { System.err.println("Couldn't find file: " + path); } return null; }

JLabel lblImgLogin = new JLabel(icon);

такая же проблема, Работы на затмение, но не работает при экспорте в работоспособной банку файл

+0

Где находится файл в вашем проекте? –

+1

«Не удалось получить доступ к файлу jar» не имеет никакого отношения к коду. Это связано с тем, что файл jar MyJar.jar не существует в текущем каталоге. –

+0

@JBNizet, но почему он работает, если он комментирует изображение? –

ответ

4

Это один правильный:

enter image description here

public class MainApp { 

    public static void main(String[] args) { 
     JFrame frame = new JFrame("Testing"); 
     ImageIcon icon = createImageIcon("/resources/logo.png"); 
     JLabel label1 = new JLabel("Image and Text", icon, JLabel.CENTER); 

     //Set the position of the text, relative to the icon: 
     label1.setVerticalTextPosition(JLabel.BOTTOM); 
     label1.setHorizontalTextPosition(JLabel.CENTER); 

     frame.getContentPane().add(label1); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

    protected static ImageIcon createImageIcon(String path) { 
     URL imgURL = MainApp.class.getResource(path); 
     if (imgURL != null) { 
      return new ImageIcon(imgURL); 
     } else { 
      System.err.println("Couldn't find file: " + path); 
      return null; 
     } 
    } 
} 

enter image description here

enter image description here

+0

http://i.imgur.com/TSQYzwI.png?1 – Firmeza

+0

Первой проблемой является сохранение косой черты перед изображениями. сделайте это "/ images/logo.png "вместо" images/logo.png ". Во-вторых, лучше использовать изображения в папке« Ресурсы ». –

+0

@SaqibRezwan Что вы ответили и прокомментировали, не работает вообще. – Firmeza

1

Создать 'Ресурсы' имя папки (именно это имя). Теперь сохраните файл logo.png в папке «Ресурсы». Теперь используйте код следующим образом.

ImageIcon imageIcon = new ImageIcon(getClass().getResource("/Resources/logo.png")) 

Скомпилируйте и создайте банку (используйте «необходимые библиотеки пакетов для сгенерированной банки» для экспорта Eclipse). Если после извлечения фляги вы получаете папку «Ресурсы» и файлы под ней, то, надеюсь, она будет работать. Извините за мой плохой Английский

+0

java.lang.NullPointerException \t на javax.swing.ImageIcon. (Unknown Source) doens't компиляции/запуска – Firmeza

+0

путь не является правильным. Где вы создали папку «Ресурсы»? Это только путь к проекту? Если путь - это установка ht, он должен работать. Я столкнулся с этой проблемой и применил вышеуказанную процедуру. Можете ли вы предоставить структуру проекта для файла png? –

+0

http://i.imgur.com/ZLCf0XL.png – Firmeza

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