2014-09-08 2 views
0

Я некоторое время разрабатывал клон космических захватчиков, а используемые ими свойства изображения отлично работали, когда я определял точный путь (I.E. E:\Images\picture.png). Однако, поскольку мой проект находится на палке данных, а разные USB-устройства на разных ПК используют разные буквы, я подумал, что было бы неплохо разместить активы с моим исходным кодом, чтобы они всегда работали. Итак, вот мой новый код загрузки изображения:Eclipse - Где разместить файлы изображений

 if(type.equals("player")) 
     { 
      try 
      { 
       img = ImageIO.read(new File("/assets/Bullet.png")); 
      } 
      catch(IOException e) 
      { 
       e.printStackTrace(); 
      } 
     } 
     else if(type.equals("alien")) 
     { 
      try 
      { 
       img = ImageIO.read(new File("/assets/BulletAlien.png")); 
      } 
      catch(IOException e) 
      { 
       e.printStackTrace(); 
      } 
     } 

Я создал папку под названием assets внутри моего каталога исходного кода (т.е. E:\<eclipse workspace>\<project name>\src\assets) и заполнить его со всеми моими файлами изображений. Однако каждый раз, когда я пытаюсь запустить программу, я получаю javax.imageio.IIOException на всех изображениях, которые я пытаюсь загрузить; причиной является «Не удается найти входной файл». Как я могу это исправить?

+3

Примечание: используйте 'equals' для сравнения строк, а не' == '. Слухи говорят, что программисты, которые используют '==', страдают в аду. – Maroun

+0

Вы пробовали 'активы/Bullet.png'? – ItachiUchiha

ответ

1

Относительный корень для файлов - это не ваш исходный файл, а ваш файл проекта (тот, в котором находится .metadata). Поэтому вам нужно либо переместить папку изображений в родительский каталог, либо позвонить new File("src/assets/XXX.png")

+0

Отличный ответ, спасибо очень :) – imulsion

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