2012-03-03 47 views
1

我最近開始學習Java,並已成功編寫和編譯我自己的應用程序(用Sublime Text編寫,文本編輯器,並通過javac編譯)。Java應用程序僅在通過終端/命令提示符啓動時纔可用

當通過終端(或者如果我在我的Windows PC上時命令提示符)啓動時,應用程序運行完美,但是如果我嘗試從文件本身啓動它(在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中的東西我自己嘗試)

不管怎樣,我不知道爲什麼,這應用程序在編譯時只在使用「java DegreesConversion」從CLI啓動時才起作用,而不是在通過雙擊啓動時起作用。我在Google和Stackoverflow上找到了關於這個問題的答案,但是在相關的解決方案或提示附近沒有找到任何關於這是爲什麼的答案。

我在考慮Java.class文件不能像.jars一樣執行嗎? 任何援助將不勝感激!

+0

那你雙擊?類文件,java文件?兩者都不會如你所見,你的命令必須是'java classname'而不是'java classname.java'或'java classname.class'。 – stryba 2012-03-03 10:28:25

+0

你是否創建了一個shell腳本或cmd文件來啓動應用程序? – 2012-03-03 10:28:25

+0

我的印象是,.class文件可以像我見過的.jars一樣運行。是一個腳本將工作 - 但我希望通過雙擊(打開)啓動它的功能。 – Frohman 2012-03-03 11:23:03

回答

5

將你的類打包成一個jar文件,並向它添加一個清單,指向具有你想要執行的主要方法的類。

然後,您可以從終端執行java -jar jarFile.jar,但也可以輕鬆運行它,例如Windows Open-With功能。

編輯: JAR tutorial

+0

現貨上,我需要一個清單文件! – Frohman 2012-03-03 11:42:03

相關問題