Java-приложение зависает, когда не запускается из командной строки - PullRequest
1 голос
/ 18 февраля 2012

В Windows 7, когда я дважды щелкаю по своему .jar-файлу, приложение запускается частично, а затем зависает.При запуске с использованием java -jar MyFile.jar или javaw -jar MyFile.jar в командной строке он работает просто отлично.Он также отлично работает на Linux Mint при использовании графического интерфейса для его запуска.Есть ли способ отладить это?(желательно с использованием затмения)

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

ОК.Я мог бы сузить это.Когда я пишу простое тестовое приложение:

import javax.swing.JOptionPane;


public class MyDebug {
    private static void err(String message){
        JOptionPane.showMessageDialog(null,message);
    }
    public static void main(String[] args){
        err("test");
    }

Программа отлично работает в командной строке, используя javaw, но при попытке выполнить с рабочего стола java выдает предупреждение, что «Не удалось найти основной класс:MyDebug. Программа закроется. "

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

Я мог бы сузить это еще дальше;при запуске с рабочего стола используется 32-разрядная версия javaw, а при запуске из командной строки используется 64-разрядная версия.

решено Я решил проблему, перейдядля программ и функций в панели управления, удаление Java и переустановка его.Пока не могу ответить на свой пост

Ответы [ 3 ]

4 голосов
/ 18 февраля 2012

@ Бенни Хан дал мне хорошую идею (+1). Попробуйте запустить javaw -jar MyFile.jar вместо java -jar MyFile.jar из командной строки. Я считаю, что ваше приложение зависнет точно так же, как это происходит, когда вы запускаете его, дважды щелкнув по файлу jar. В этом случае возможной причиной является использование STDIN или STDOUT в вашей программе. Помните: они не существуют при использовании javaw.

3 голосов
/ 18 февраля 2012

в вашей среде Windows, проверьте команду java и команду javaw.Когда вы дважды щелкаете файл jar, команда javaw запускает файл jar.Я думаю, это может быть потому, что у вас установлено более одного jre.

1 голос
/ 18 февраля 2012

Попробуйте запустить через скрипт ..

echo "started from %cd%"
set scriptroot=%~dp0%

java -version
echo %path%

java -jar %scriptroot%\MyFile.jar

echo "press any key  to continue"
pause 

Тогда вернитесь с java-версией, исключением и т. Д.

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