[英]Running a .jar file without a GUI
我為我正在處理的項目制作了這個小程序,當我從 Eclipse 運行時,它可以正常工作。 我想做的是有一個 .jar 文件,我可以雙擊它並讓它在我的控制台中運行。 我已經在導出菜單上導出為 JAR 和可運行 JAR,並且兩次在任務管理器中啟動 Java 進程,它都使用 CPU 和內存,但我的屏幕上沒有顯示任何內容。 我嘗試使用命令提示符進行編譯,結果是一樣的。 所以,我的問題是,我可以有一個沒有 GUI 的獨立 java 應用程序嗎? 因為這似乎是我的問題:我按照教程制作了一個程序,它工作得很好。
我正在使用 Windows 8 64 位(因為我必須在我的項目中使用其他一些軟件,所以我必須這樣做)。 我是這個 Java 業務的新手,所以如果可以的話,請盡可能簡單; 我真的很感激。 提前致謝。
import java.util.Scanner;
public class Distancia {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int check = 1;
System.out.println("Kilómetros a Millas Náuticas\n");
do {
int cm = 0;
int salida = 0;
while (salida != 1){
try {
System.out.println("Escriba la distancia en kilómetros:");
cm = sc.nextInt();
salida = 1;
} catch (Exception e) {
System.out.println("Opción Inválida");
sc = new Scanner(System.in);
sc.reset();
}
} //Fin del While
//Conversiones de distancias
int km = cm*50; // Conversión de Centimetros-mapa a Kilómetros
double mn = km/(1.8); // Conversión a Millas Náuticas
//Cálculos de Velocidades
System.out.println("Distancia en kilómetros: "+km+" km.");
System.out.println("Distancia en millas náuticas: "+mn+" MN.\n");
if (mn/5<24)
System.out.println("Tiempo a 05 nudos: "+mn/5+" horas.");
else{
System.out.println("Tiempo a 05 nudos: "+mn/5+" horas.");
System.out.println("Tiempo a 05 nudos: "+(mn/5)/24+" días.");
System.out.println();
}
if (mn/8<24)
System.out.println("Tiempo a 08 nudos: "+mn/8+" horas.");
else{
System.out.println("Tiempo a 08 nudos: "+mn/8+" horas.");
System.out.println("Tiempo a 08 nudos: "+(mn/8)/24+" días.");
System.out.println();
}
if (mn/12<24){
System.out.println("Tiempo a 12 nudos: "+mn/12+" horas.");
System.out.println();
}
else{
System.out.println("Tiempo a 12 nudos: "+mn/12+" horas.");
System.out.println("Tiempo a 12 nudos: "+(mn/12)/24+" días.");
System.out.println();
}
}
while (check !=0);
sc.close();
}
}
我同意@lewis4u 提到的內容。盡管他的回答需要對初學者進行一些澄清。 由於初學者嘗試實現的第一個 java 應用程序在大多數情況下將是一個無 GUI 應用程序。 要創建一個雙擊運行的 Java 無 GUI 控制台程序(按照以下步驟操作):
(cd theDirectoryWhereTheJavaFileIsFound),然后 ENTER
(javac 文件名.java),然后 ENTER
此過程用於將 java 文件編譯為類文件。
(java 文件名) 然后 ENTER
(暫停)
然后保存文件,並將其擴展名從 (.txt) 更改為 (.bat)。
完成以上步驟后,大功告成!
當您雙擊您創建的 (.bat) 文件時,這將啟動一個控制台應用程序,您可以在其中輸入/輸出。
當然可以。
您需要做的就是讓它由 Java 虛擬機運行。
那是
java -jar "\path\to\YOUR_JAR_NAME.jar"
但是,通過雙擊運行它不起作用。
但是,如果您使用 C# 而不是 Java,它會生成一個可愛的 .exe,您可以通過雙擊運行它。
或者如果你堅持使用Java,你可以使用Launch4j:
http://launch4j.sourceforge.net/
如果問題是,它需要一個 GUI,您可以執行AttachConsole WinAPI 調用,以顯示命令行窗口。
windows 處理雙擊 jar 文件的方式是啟動javaw
,該 javaw 旨在運行 Java GUI 程序而不顯示控制台窗口。 當我雙擊一個 Java 控制台應用程序時,我會在控制台窗口中看到類似這樣的內容:
javaw -jar "C:\JavaPrograms\SampleConsoleApp\dist\DistanceCalc.jar"
因為 javaw 設計用於啟動 GUI 窗口,所以沒有顯示任何其他內容,但沒有顯示。
如果您想創建一個通過雙擊啟動的控制台應用程序,請創建一個名為launcher.bat
的文本文件並將啟動命令放在該批處理文件中:
java -jar "C:\JavaPrograms\SampleConsoleApp\dist\DistanceCalc.jar"
當您從 IDE 運行程序時,Netbeans 實際上會為您生成此命令行,方法是在輸出窗口中顯示如下內容:
To run this application from the command line without Ant, try:
java -jar "F:\JavaPrograms\IndexMaker\dist\IndexMaker.jar"
寫下這兩行:
java "yourmainclassname" pause
將該文件另存為“名稱”.bat
(當然,這個新創建的 .bat 文件必須與 .class 位於同一文件夾中)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.