Getting an error running this program as a command line argument in Java, how can I fix this?
当我试图在Eclipse中作为命令行参数运行这个程序时,我得到了一个错误。错误是这样说的:
错误:在类中找不到主方法,请将主方法定义为:公共静态void main(string[]参数)或者javafx应用程序类必须扩展javafx.application.application
当我将main方法更改为string时,就不能调用第二个方法,因为string main方法与int returnsum方法不兼容。
根据需要,我需要将ReturnSums方法设置为int类型的方法,但我无法在不出现错误的情况下解决此问题。它在需求中说,我需要为方法使用可变数量的参数,但是很难理解这个想法。
有人能帮我吗?这是我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public static void main(int[] args) { // Printing the entered digits System.out.print("Passing"); System.out.print(" ["); for (int nums = 0; nums < args.length; nums++) { System.out.print(args[nums] +""); } System.out.print("]"); System.out.println(" Sum is" + returnSum(args)); // Calling on the second method for the sum } // Taking the nums from the main method as arguments public static int returnSum(int...args) { int sum = 0; // Calculating the sum for (int nums = 0; nums < args.length; nums++) { sum = sum + nums; } return sum; } |
谢谢您!
尝试以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | public class SumOfNumbers { public static void main(String[] args) { int[] intArgs = new int[args.length]; for (int x = 0; x < args.length; x++) { if (args[x].matches("\\d+")) { intArgs[x] = Integer.parseInt(args[x]); } else { System.out.println(args[x] +" is not a Integer hence skiped in this program"); } } // Printing the entered digits System.out.print("Passing"); System.out.print(" ["); for (int nums = 0; nums < intArgs.length; nums++) { System.out.print(intArgs[nums] +""); } System.out.print("]"); System.out.println(" Sum is" + returnSum(intArgs)); // Calling on the second method for the sum } // Taking the nums from the main method as arguments public static int returnSum(int... args) { int sum = 0; // Calculating the sum for (int nums = 0; nums < args.length; nums++) { sum = sum + args[nums]; } return sum; } } |
号
@桑杰:如果你尝试论证:
1 2 3 4 |
不应只忽略,应忽略。此外,进口应为3号(包括10号)或2号(不包括10号),不应为4号。
您需要让您的主要方法签名是
将主方法的参数改回
在主方法中,将每个参数解析为一个
1 2 3 | int[] intArgs = new int[args.length]; for(int x=0; x<args.length; x++) intArgs[x] = Integer.parseInt(args[x]); |
请注意,如果您没有传递任何参数或不是整数的参数,这将中断。如果您想处理这个问题,您可以在之前检查