0

Я пытаюсь создать fileInputStram для Jasper и получаю FileNotFoundException. мой файл jasper и класс java находятся под одним и тем же пакетом. i use java 1.8 and jasperreport 5.5.0Не удалось найти исключение при создании fileinputstream?

Кто-нибудь знает, что не так в этом коде?

java.io.FileNotFoundException: de\reports\off\office.jasper (The system cannot find the path specified) 
    at java.io.FileInputStream.open(Native Method) 
    at java.io.FileInputStream.<init>(FileInputStream.java:138) 
    at de.reports.off.PrintOffice.retrieveStream(PrintOffice.java:105) 

это мой Methode:

public static FileInputStream retrieveStream() { 
     final String OFFICE_JASPER = "de\\reports\\off\\office.jasper"; 
     File jasperFile = new File(OFFICE_JASPER); 
     FileInputStream fis = null; 
     try { 
      fis = new FileInputStream(jasperFile); 
     } 
     catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 

     return fis; 
    } 
+0

Может быть, вы ошибаетесь в пути? Это относительный или абсолютный путь? – acostela

+0

Система не может найти путь, который вы указали –

ответ

1

Если вы создаете File объект с относительным путем, то это будет относительный каталог, указанный в user.home (обычно каталог, из которого вы запустите приложение).

пример:
- приложение запускается из каталога C:\dir1\app
- File будет ссылаться на файл C:\dir1\app\de\reports\off\office.jasper

0

Мой IDE не копировали файл при компиляции. Это была небольшая корректировка в файле pom, где был определен jasper. я добавил /src к <directory>${basedir}/src</directory>

<resource> 
       <directory>${basedir}/src</directory> 
       <filtering>false</filtering> 
       <includes> 
        <include>**/*.jasper</include> 
       </includes> 
       <excludes> 
        <exclude>target</exclude> 
        <exclude>**/target</exclude> 
        <exclude>**/target/**</exclude> 
       </excludes> 
      </resource> 
Смежные вопросы