Приложение Java работает только при запуске через терминал / командную строку - PullRequest
1 голос
/ 03 марта 2012

Я недавно начал изучать Java и успешно написал и скомпилировал собственное приложение (написанное в Sublime Text, текстовом редакторе и скомпилированное с помощью javac).

Приложение отлично запускается при запуске через терминал (или из командной строки, если я нахожусь на моем ПК с Windows), но если я пытаюсь запустить его из самого файла (в Windows дважды щелкните по нему и убедитесь, что Java открыта. с помощью метода, или на моем ноутбуке Ubuntu, делая его исполняемым и делая то же самое) Я получаю очень короткий курсор загрузки, а затем ничего.

Приложение (которое конвертируется между градусами Цельсия и Фаренгейта) использует несколько простых диалогов Swing, чтобы получить ввод пользователя и отобразить результат.

import javax.swing.*;

public class DegreesConversion
{
public static void main( String [] args)
    {
    String input = JOptionPane.showInputDialog("Enter a temperature followed by either C for Celcius or F for Fahrenheit\nE.g. 30C or 86F");
    int degrees = Integer.parseInt(input.substring(0,input.length()-1));

    switch (input.toLowerCase().contains("f") ? 0 : input.toLowerCase().contains("c") ? 1 : 2){
        case 1:
            JOptionPane.showMessageDialog(null,(((degrees*9)/5)+32)+" degrees Fahrenheit", "Conversion complete", JOptionPane.INFORMATION_MESSAGE);
            break;
        case 0:
            JOptionPane.showMessageDialog(null,(((degrees-32)*5)/9)+" degrees Celcius","Conversion complete",JOptionPane.INFORMATION_MESSAGE);
            break;
        default:
            JOptionPane.showMessageDialog(null, "The input you entered was not recognised!","Unknown input", JOptionPane.ERROR_MESSAGE);
            break;

    }
    }
}

(Это ни в коем случае не означает, что это серьезное или ужасно функциональное приложение, это была просто моя собственная попытка сделать что-то в Java)

Во всяком случае, я не уверен, почему это приложение, когда оно скомпилировано, функционирует только при запуске из CLI с использованием "java DegreesConversion", а не при двойном щелчке. Я искал ответы на этот вопрос в Google и Stackoverflow, но не нашел ничего похожего на подходящее решение или подсказку, почему это так.

Я считаю, что файлы Java .class не могут быть выполнены так же, как .jars? Любая помощь будет принята с благодарностью!

1 Ответ

5 голосов
/ 03 марта 2012

Упакуйте свой класс в jar-файл и добавьте к нему манифест, указывающий на класс, имеющий метод main, который вы хотели бы выполнить.

Затем вы можете сделать java -jar jarFile.jar из терминала, но также возможнолегко запустить его, например, через возможности Windows Open-With.

РЕДАКТИРОВАТЬ: Учебник JAR

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