2011-05-27 83 views
3

我使用Eclipse在Java中創建了命令行應用程序。我創建了一個可運行的JAR,並明白如果我想運行它,我需要通過命令提示符來完成。有沒有辦法讓.jar打開命令提示符並單擊運行程序?爲了闡明,該程序在Eclipse的控制檯中工作,並運行通過命令提示符創建的.jar工程(即java -jar Minesweeper.jar)。當我點擊.jar文件時,我只想執行它。爲命令行創建可運行的JAR文件Java應用程序

回答

2

當試圖運行命令行基本應用程序作爲可運行jar文件時,我注意到了這個問題。如果您嘗試執行創建和顯示jframe等操作,它會正常工作。我唯一的建議是,如果你使用的是Windows,你可以使具有行的批處理文件:

java -jar nameofjar.jar 

名稱的文件類似的run.bat,然後你可以雙擊這一點,它會運行命令行應用程序。除此之外,我不知道爲什麼這個問題出現在基於命令行輸入的應用程序中。

編輯:

這是一種方法,使一個假命令提示符顯示,如果你不能想出一個辦法來得到真正的一個,從雙擊運行罐子。

import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.Insets; 
import java.awt.Rectangle; 

import javax.swing.JFrame; 
import javax.swing.JScrollPane; 
import javax.swing.JTextArea; 


public class FakeCommandPrompt { 

private JTextArea myTextArea; 
private JScrollPane scrollPane; 
private JFrame mainFrame; 

/** 
* Setup the fake command prompt. 
*/ 
public FakeCommandPrompt() 
{ 
    mainFrame = new JFrame(); 
    mainFrame.setBounds(new Rectangle(new Dimension(500, 400))); 
    mainFrame.setBackground(Color.BLACK); 

    myTextArea = new JTextArea(); 
    myTextArea.setBackground(Color.BLACK); 
    myTextArea.setForeground(Color.WHITE); 
    myTextArea.setEditable(false); 
    myTextArea.setMargin(new Insets(10, 10, 10, 10)); 

    scrollPane = new JScrollPane(myTextArea); 
    scrollPane.setBackground(Color.BLACK); 

    mainFrame.add(scrollPane); 
    mainFrame.setVisible(true); 
} 

public void printToCommandPrompt(String text) 
{ 
    // Append the new next to the command prompt 
    // Add a new line at the end 
    this.myTextArea.append(text + "\n"); 
} 

/** 
* @param args 
*/ 
public static void main(String[] args) { 
    // TODO Auto-generated method stub 

    // Create and instance of the fake command prompt. 
    FakeCommandPrompt commandPrompt = new FakeCommandPrompt(); 

    // Prints 0 -> 5 on the fake command prompt. 
    for (int i = 0; i <= 5; i++) 
    { 
     commandPrompt.printToCommandPrompt(String.valueOf(i)); 
    } 
} 

} 

另外,你能告訴我你用來創建可運行jar文件的步驟。上面的代碼應該通過雙擊jar文件來運行。如果沒有,那麼創建jar文件的方式可能會出錯。

+0

這個_works_用於所有的意圖和目的......我現在會保留這個問題一點,只是爲了看看是否有任何運氣。 堅持下去,這裏有一個想法:有什麼辦法可以創建一個顯示控制檯輸出的GUI類型的東西嗎? – Salem 2011-05-27 03:24:38

+0

你可以製作一個jscrollpane併爲它添加一個jtextarea。您可以修改jscrollpane和jtextarea屬性,使其看起來像命令提示符,而不是使用像System.out.println()這樣的語句打印到標準輸出,請使用myTextArea.append(「some text \ n」);這會將文本打印到文本區域。 – MBU 2011-05-27 10:04:28

+0

你是我的英雄。作爲一名Java新手,我一直在想這是否可能。 – Salem 2011-05-27 21:08:52

0

你在Windows上嗎?

您是否嘗試過創建一個快捷方式到您的jar文件? 桌面>右鍵單擊>創建快捷方式> [指定您的jar文件的路徑]

如果您確實有可運行jar,您應該可以通過單擊或雙擊運行它。

+0

我只是再試一次。捷徑起作用。 – 2011-05-27 02:58:12