我目前正在Eclipse中开展一个学校项目(我们刚刚开始使用它)并且我们遇到了一个小小的问题:因为之前我们使用过BlueJ,我们没有任何main方法,我们添加了一个但是运行了陷入困境。
我们必须在参数中发送一个Int值而不是带有args的String [],我们尝试过 public static void main(Int [] args) 这会导致以下错误:
错误:在类Tester中找不到主要方法,请定义主要方法 方法为:public static void main(String [] args)
我想知道我们应该做些什么/改变以使其发挥作用。
答案 0 :(得分:7)
查看Integer.parseInt("123")
,
见http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt%28java.lang.String,%20int%29
我希望你能弄明白其余的事情:)。
答案 1 :(得分:3)
Java将寻找public static void main(String[] args)
您必须将整数值作为String传递并解析它。
以下是指向Integer.parseInt(String)
documentation的链接。
答案 2 :(得分:3)
正如其他人所说,你不能改变main
方法的签名。要从String
参数中获取整数,请使用:
public static void main(String[] args) {
int first = Integer.parseInt(args[0]); // use whatever index you need
}
答案 3 :(得分:2)
就像错误所说的那样,执行类时将调用的main方法必须具有签名public static void main(String[] args)
。你不能只给它不同的论点。
如果在命令行上将数字作为参数传递,它们将被Java作为字符串读入。如果要将它们转换为数字类型,则必须在代码中明确地执行此操作。
答案 4 :(得分:2)
尝试在String数组中发送整数。
new String[]{"1"}
然后获取它:
Integer yourInteger = Integer.valueOf(args[0])
答案 5 :(得分:2)
您需要将值作为String传递,然后将其解析为整数。
查看此代码示例:
public static void main(String[] args) throws Exception {
int value = Integer.parseInt(args[0]);
System.out.println("My int value: " + value);
}
如果参数不可解析,则需要使用try catch保护parseInt以进行错误管理。
答案 6 :(得分:1)
只需传入一个字符串,然后使用Integer.parseInt(string)
获取所需的整数。
答案 7 :(得分:1)
编写如下的主要方法
public static void main(String[] args){
}
。
并使用Integer.parseInt(str)
答案 8 :(得分:1)
您必须按如下方式保留main方法:
public static void main(String[] args){
//....
}
当您指出错误时。现在,在main方法中可以将参数的类型更改为整数。
public static void main(String[] args){
int arg0=Integer.parseInt(args[0]);
int arg1=Integer.parseInt(args[1]);
//... etc.
}
问候!
答案 9 :(得分:1)
该类将打印出您在命令行中输入的整数:
public class IntegersFromCommandLine
{
public static void main(String[] args)
{
for (int i = 0; i < args.length; i++)
{
System.out.println(Integer.parseInt(args[i]));
}
}
}
如果你给它命令行参数 1324 21 458 9564 1 0 -789 40 ,它将给出以下输出:
1324
21
458
9564
1
0
-789
40
答案 10 :(得分:0)
无法更改主方法的签名。这是操作系统的约束。
只需通过Integer.parseInt(...)
将String解析为整数,然后调用实际方法!