我在java中编写了一个简单的添加程序,并将其转换为.exe文件。但是当我尝试运行exe文件时,即使是从我的桌面上点击它,我也会收到错误“启动时出现错误:”这个巨大的东西:
java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at addit.main(addit.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher.main(Unknown Source)
我的清单文件包含:
“Main-Class:addit
“
它有正确的两行
addit.java程序:
import java.util.Scanner;
public class addit
{
public static void main (String [] args)
{
int x;
int y;
int z;
System.out.println("Welcome to Addit!");
System.out.println("Please enter the first digit.");
Scanner scanner = new Scanner(System.in);
x = scanner.nextInt();
System.out.println("Please enter the second digit.");
y = scanner.nextInt();
z = x + y;
System.out.println("The sum of " + x + " and " + y + " is " + z);
}
}
另外,顺便说一下,程序编译并运行正常,即使在运行cmd时(当我运行addit.java时)。
编辑:哦,等等,很抱歉,事实证明addit.exe运行不正常。对不起,我一定很困惑..><答案 0 :(得分:1)
对我来说很好。确保你以这种方式运行jar
java -jar addit.jar
输入
1 2
编辑 :(使用addit.exe尝试此操作)
Scanner scanner = new Scanner(System.in);
System.out.println("Please enter the first digit: ");
x = scanner.nextInt();
scanner.nextLine(); // skips '\n' causing the problem
System.out.println("Please enter the second digit: ");
y = scanner.nextInt();
z = x + y;
答案 1 :(得分:0)
错误来自第15
行
at addit.main(addit.java:15)
在15
x = scanner.nextInt();
此时程序试图从控制台读取整数值
Scanner scanner = new Scanner(System.in);
scanner
设置为从System.in
读取输入,默认情况下是操作系统的控制台。但是,由于您正在运行程序,因此您的程序无法从读取输入中获取。
重写您的程序并输入硬编码值而不是从用户读取。然后做所有这些。如果有效,你会得到答案。