0

我用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)

我的清单文件包含:

“主类: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 运行不正确。对不起,我一定是混淆了..><

4

2 回答 2

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;
于 2013-06-28T19:13:12.957 回答
0

错误来自线路15

at addit.main(addit.java:15)

在线查看您的代码15

x = scanner.nextInt();

此时您的程序试图从控制台读取一个整数值

Scanner scanner = new Scanner(System.in);

scanner设置为从System.in默认情况下操作系统的控制台读取输入。但是,由于您正在运行您的程序,因此您的程序无法从哪里读取输入。

重写您的程序并放置硬编码值,而不是从用户那里读取。然后做所有这些事情。如果有效,您将得到答案。

于 2013-06-29T07:31:56.587 回答