2013-06-28 59 views
0

我在java中编写了一个简单的附加程序,并将它加入了一个.exe文件。但是,当我尝试甚至通过点击它从我的桌面上运行的exe文件,我得到错误“的错误在启动过程中已发生:”这个巨人的事情:尝试运行.exefile时启动时出现Java错误.exefile

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运行不正确。对不起,我一定很困惑。> <

+0

发布您的清单文件内容 –

+0

必须在文件末尾有一个空行 –

+0

您可以发布addit类吗? – Jerome

回答

1

它对我来说工作正常。请确保您正在运行的罐子这样

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

输入之间需要空格,因为它是Scanner的默认分隔符。 @ user1569574您可以再试一次,让我知道吗? –

+0

当我在cmd的同一行输入“1 2”时,它要求输入第二个数字,但之后报告了总和。但没关系,jar文件可以工作 – user1569574

0

的错误来自行15

at addit.main(addit.java:15) 

看看你的代码上线15

x = scanner.nextInt(); 

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

Scanner scanner = new Scanner(System.in); 

scanner设置为从读取输入System.in这是默认的操作系统的控制台。但是,由于您的程序开箱即用,因此您的程序无法从读取输入中获取。

重写您的程序并将硬编码的值改为从用户读取。然后做所有这些事情。如果有效,你会得到你的答案。

相关问题