Я сделал эту небольшую программу для проекта, над которым я работаю, и он работает так, как должен, когда я запускаю из Eclipse. То, что я хотел бы сделать, это иметь.jar файл, который я могу дважды щелкнуть, и запустить его в моей консоли. Я alredy экспортируется как JAR и runnable JAR в меню "Экспорт", и оба раза он запускает процесс Java в диспетчере задач, он использует как процессор, так и память, но на моем экране ничего не отображается. Я попробовал компиляцию с помощью командной строки, и это то же самое. Итак, мой вопрос: могу ли я иметь отдельное Java-приложение без GUI? Потому что кажется, что моя проблема: я последовал за учебником, чтобы сделать программу с одним, и это сработало отлично.
Я использую 64-разрядную версию Windows 8 (у меня должно быть какое-то другое программное обеспечение, которое я должен использовать в своем проекте). Я новичок в этой 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();
}
}
Способ, которым окна обрабатывают двойной щелчок на файле jar, - это запуск javaw
который предназначен для запуска программы GUI Java без отображения окна консоли. Когда я дважды нажимаю консольное приложение 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"
напишите две строки:
java "yourmainclassname"
pause
сохраните этот файл как "имя".bat
(конечно, этот новый созданный.bat файл должен находиться в той же папке, что и.class)
Конечно вы можете.
Все, что вам нужно сделать, это запустить его на виртуальной машине Java.
Что
java -jar "\path\to\YOUR_JAR_NAME.jar"
Однако запуск с помощью двойного щелчка не работает.
Но если вы используете С# вместо Java, он генерирует прекрасный.exe, который можно запустить двойным щелчком.
Или, если вы настаиваете на использовании Java, вы можете использовать Launch4j:
http://launch4j.sourceforge.net/
Если проблема в том, что она ожидает графический интерфейс, вы можете выполнить вызов AttachConsole WinAPI, чтобы отобразить окно командной строки.
java -jar myjar.jar