jar не видит config.properties? - PullRequest
       1

jar не видит config.properties?

0 голосов
/ 28 августа 2018

У меня есть проект с такой структурой:

myPoject
    src
        com.config
           PropertiesFile.java
        com.main
           Main.java
    resources
        data.png
    config.properties


public class PropertiesFile {
    private static Logger logger = LogManager.getLogger(PropertiesFile.class);

    private static final char CONFIG_DELIMITER = ',';
    private static final String CONFIG = "config.properties";

    private static org.apache.commons.configuration2.Configuration config;

    static {
        try {
            Parameters params = new Parameters();
            FileBasedConfigurationBuilder<FileBasedConfiguration> builder = new FileBasedConfigurationBuilder<FileBasedConfiguration>(PropertiesConfiguration.class)
                .configure(params.properties()
                    .setFileName(CONFIG)
                    .setListDelimiterHandler(new DefaultListDelimiterHandler(CONFIG_DELIMITER)));

            config = builder.getConfiguration();    } 
        catch (ConfigurationException cE) {     
            logger.fatal("Error", cE);
        }
    }

    public static final String ID    = config.getString("id");
    public static final String DEST_HOST    = config.getString("destination.host");
    public static final int  DEST_PORT = config.getInt("destination.port");     
}

config.properties

id                      = myApp
destination.host        = localhost
destination.port        = 9898

Main.java

public class Main{  
    public static void main(String[] args) throws InterruptedException {            
        Thread tc = new Thread(new Runnable() {
            @Override
            public void run() {
                connect();  
            }           
        });

        tc.start();     
        tc.join();
    }


    private static void connect() {

        try (Socket socket = new Socket(PropertiesFile.DEST_HOST, PropertiesFile.DEST_PORT)) {      

            //...code           

    }
}

Когда я запускаю Eclipse, он работает нормально, но когда я делаю банку и пытаюсь выполнить, я получаю эту ошибку

назад 28, 2018 10:23:28 org.apache.commons.beanutils.FluentPropertyBeanIntrospector introspect
ИНФОРМАЦИЯ: Ошибка при создании PropertyDescriptor для публичного финала void org.apache.commons.config uration2.AbstractConfiguration.setProperty (java.lang.String, java.lang.Object)! Игнорирование этого свойства.
Исключение в потоке "Thread-1" java.lang.ExceptionInInitializerError
на com.main.Main.connect (Main.java:47)
на com.main.Main.access $ 0 (Main.java:46)
на com.main.Main $ 1.run (Main.java:37)
at java.lang.Thread.run (неизвестный источник)
Вызвано: java.util.NoSuchElementException: ключ 'destination.port' не отображается на существующий объект!
в org.apache.commons.configuration2.AbstractConfiguration.throwMissingPropertyException (AbstractConfiguration.java:1911)
в org.apache.commons.configuration2.AbstractConfiguration.checkNonNullValue (AbstractConfiguration.java:1898)
t org.apache.commons.configuration2.AbstractConfiguration.getInt (AbstractConfiguration.java:1262)
в com.config.PropertiesFile. (PropertiesFile.java:43)
... еще 5

Разве баночка не видит файл config.properties?

1 Ответ

0 голосов
/ 28 августа 2018

Файл config.properties должен находиться в папке ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...