2015-01-20 3 views
0

Я пытаюсь создать в первый раз runnable jar в наборе инструментов весны. Я использую функцию экспорта и создать .jar файл, но при его запуске, я получаю следующее сообщение об ошибке:Spring tool suite create runnable jar error find config file

java.io.FileNotFoundException: config.properties (The system cannot find 
the file specified) 

я нашел некоторые предлагаемые решения здесь ссылки поместить файл в исходной папке и даже если я сделал это , он все еще не видит файл. Я даже разместил его в нескольких местах, надеясь, что это сработает.

enter image description here

Здесь я звоню класс, чтобы прочитать файл:

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
     System.out.println("GETTING CONFIG PROPERTIES FILE..."); 
     configuration.readConfig(); 

.... 
public static void readConfig() { 

    Properties fileProp = new Properties(); 
    try { 

     //OutputStream output = null; 
     URL url1 = configuration.class. 
       getClassLoader().getResource("config.properties"); 
     File f = new File(url1.getFile()); 
     FileReader rd = new FileReader(f.getPath()); 

     //InputStream infile = new FileInputStream("config.properties"); 
     fileProp.load(rd); 

EDIT:

Сделано изменение в пути имя файла, вставив слэш, но это, кажется, не можно найти файл:

LOADING CONFIG PROPERTIES FILE... 
Exception in thread "main" java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.eclipse.jdt.internal.jarinjarloader. 
    JarRsrcLoader.main(JarRsrcLoader.java:58) 
    Caused by: java.lang.NullPointerException 
    at com.ccccc.hbasededuper. 
    configuration.readConfig(configuration.java:48) 
    at com.ccccc.hbasededuper.HBaseMain.main(HBaseMain.java:144) 
    ... 5 more 

Эта строка кода :

 URL url1 = configuration.class.getClassLoader(). 
     getResource("/config.properties"); 

     System.out.println("LOADING CONFIG PROPERTIES FILE..."); 

     File f = new File(url1.getFile()); 
     FileReader rd = new FileReader(f.getPath()); 

Ошибка возникает как url1.getFile.

EDIT2:

Отремонтировано; проблема заключалась в том, как я читал файл свойств.

fileprop.load(ClassLoader.getSystemResourceAsStream("config.properties")) 

ответ

1

Я уверен, что тот, который вы хотите, это один в SRC/основные/ресурсов, и можно обращаться с помощью

configuration.class.getClassLoader().getResources("/config.properties") 

Обратите внимание на «/».

+0

Спасибо. Проблема заключалась в том, что при отладке она работала без «/», но вставляла ее для создания баннера. Есть еще некоторые ошибки, с которыми приходится иметь дело сейчас. Ценю вашу помощь. – vbNewbie

+0

Повернул его, он все еще не читал файл, но ваше предложение помогло отладить его. – vbNewbie

0

Ниже то, что сделал разницу и сохранение файлов конфигурации под SRC/основные/ресурсы

fileProp.load(configuration.class. 
     getClassLoader().getResourceAsStream("config.properties")); 
Смежные вопросы