Приложение Java иногда зависает при запуске

Это действительно странная проблема: иногда, когда я пытаюсь запустить свое приложение, процесс создает себя, но ничего не делает. А иногда и начинается.

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

PS: Я пытался увидеть консоль и показать printStackTrace, но ничего не вышло. Просто регулярки логируются до тех пор, пока не зависнут (до показа графического интерфейса).

Редактировать:

Вот командная строка с java -jar, когда это происходит

Диспетчер задач застрял на 30 000 КБ памяти

Моя программа просто вызывает: read("MaxAttempts")

    public String read(String NomFonction) {
    String ConfigFile = cfgfile.getPath();
    try{
        InputStream flux=new FileInputStream(ConfigFile); 
        InputStreamReader lecture=new InputStreamReader(flux);
        BufferedReader buff=new BufferedReader(lecture);
        String ligne;
        String Fonction = null;
        while ((ligne=buff.readLine())!=null){
            if(ligne.contains(NomFonction + "=")) {
                Fonction = ligne.split("=")[1];
            }
        }
        buff.close();
        if(!Fonction.equals(null)) {
            return Fonction;
        }
        } catch(Exception e1) {
            e1.printStackTrace();
    }
    return "Error";
}

person RapidEv    schedule 01.08.2016    source источник
comment
Не удалось воспроизвести.   -  person shmosel    schedule 01.08.2016
comment
Это очень плохо, и мы все сожалеем об этом. Но мы можем попытаться помочь, если вы опубликуете свой код и любую ошибку, которую вы получаете.   -  person Pritam Banerjee    schedule 01.08.2016
comment
да, извините, я отредактировал пост и добавил немного информации. Но там не так много :/   -  person RapidEv    schedule 01.08.2016
comment
@RapidEv Что находится в ConfigFile?   -  person Pritam Banerjee    schedule 01.08.2016
comment
Только это в разных строках: Language=en_US MaxAttempt=3 Console=true   -  person RapidEv    schedule 02.08.2016
comment
Небольшая подсказка: никогда не пишите `‹something›.equals(null) Это приведет к сбою (NPE), если что-то равно null. Вы должны написать: if (Fonction != null) ...   -  person John Tang Boyland    schedule 02.08.2016
comment
@JohnTangBoyland О, спасибо, я не знал :)   -  person RapidEv    schedule 02.08.2016


Ответы (1)


Попробуйте воспроизвести его в режиме отладки.

Продолжайте запускать процесс в режиме отладки, пока он не будет воспроизведен. Когда программа зависнет, посмотрите список ваших тем. Если чтение конфигурации происходит в основном потоке (и это выглядит так. Если нет, то подберите нужный поток), в зависимости от вашей IDE, щелкните правой кнопкой мыши по потоку и выберите «приостановить» (потом еще раз, в зависимости от вашей IDE).

Он покажет, где зависла ваша нить.

person Average Joe    schedule 02.08.2016
comment
На самом деле я никогда не использовал режим отладки в eclipse:/ - person RapidEv; 02.08.2016
comment
Вы должны тогда. Это сэкономит много вашего драгоценного времени в будущем. - person Average Joe; 02.08.2016
comment
попробую х) спасибо - person RapidEv; 02.08.2016