我为我正在进行的项目制作了这个小程序,当我从Eclipse运行时,它可以正常工作。我想要做的是有一个.jar文件,我可以双击并让它在我的控制台中运行。我在导出菜单上导出为JAR和可运行的JAR,并且它在任务管理器中启动Java进程,它同时使用CPU和内存,但我的屏幕中没有显示任何内容。我尝试使用命令提示符编译,它只是同样的事情。所以,我的问题是,我可以拥有一个没有GUI的独立Java应用程序吗?因为它似乎是我的问题:我按照教程制作了一个程序,它运行得很好。
我使用Windows 8 64位(因为我必须在我的项目中使用其他软件)。我是这个Java buissness的新手,所以如果你能尽可能地保持它简单;我真的很感激。提前谢谢。
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();
}
}
答案 0 :(得分:0)
当然可以。
您需要做的就是让它由Java虚拟机运行
那是
java -jar "\path\to\YOUR_JAR_NAME.jar"
但是,通过双击运行它不起作用。
但是如果您使用C#而不是Java,它会生成一个可爱的.exe,您可以通过双击来运行。
或者如果你坚持使用Java,你可以使用Launch4j:
http://launch4j.sourceforge.net/
如果问题是,它需要GUI,您可以执行AttachConsole WinAPI调用,以显示命令行窗口。
答案 1 :(得分:0)
Windows处理双击jar文件的方式是启动javaw
,它旨在运行Java GUI程序,而不显示控制台窗口。当我双击Java控制台应用程序时,我在控制台窗口中看到类似的内容:
javaw -jar "C:\JavaPrograms\SampleConsoleApp\dist\DistanceCalc.jar"
由于javaw旨在启动GUI窗口,但没有显示任何其他内容,但没有。
如果您想创建一个双击启动的控制台应用程序,请创建一个名为launcher.bat
的文本文件,并将启动命令放在该批处理文件中:
java -jar "C:\JavaPrograms\SampleConsoleApp\dist\DistanceCalc.jar"
Netbeans实际上会在您从IDE运行程序时为您生成此命令行,方法是在输出窗口中显示以下内容:
To run this application from the command line without Ant, try:
java -jar "F:\JavaPrograms\IndexMaker\dist\IndexMaker.jar"
答案 2 :(得分:0)
写下这两行:
java "yourmainclassname"
pause
将该文件另存为&#34;名称&#34; .bat
(当然这个新创建的.bat文件必须与.class在同一个文件夹中)