[英]Java Input error: Syntax error near unexpected token
尝试创建一个类似下面的代码的质数测试器,但是当我在终端窗口中输入java isPrime(9)
时,我得到了
-bash: syntax error near unexpected token `('
我想要的代码读取无论是true
或false
还给我。
有人可以向我解释main method
的功能吗,因为我猜我的用户输入首先是由main method
捕获的,然后传递给任何其他引用的方法。 或者是将main method
放置在代码中,还是将main method
放在顶部(或者在Java中这无关紧要)?
这是代码。
public class isPrime {
public static boolean isPrime(int N){
for (int i=3; i == N/2; i++){
if (N%i==0)
return true;
}
return false;
}
public static void main (String [] args){
int N = Integer.parseInt(args[0]);
System.out.println(isPrime(N));
}
}
您应该使用以下命令运行它:
java isPrime 9
命令行参数不在括号内传递。
为什么java isPrime(9)
会导致错误? 好吧,bash shell特别对待()
。 要了解更多信息,请阅读此问题的答案- 如何使用双括号或单括号,括号,花括号 。
您可以引用方括号来强制bash放弃对()
特殊处理。 像java 'isPrime(9)'
东西。 但这会显示另一个错误: Error: Could not find or load main class isPrime(9)
。
刚刚发生了什么? java命令期望作为java [options] MainClass [arg1 arg2 arg3...]
调用。 java
之后的第一个不以-
开头的单词是要执行的类。 命令行中的其余单词在main(String []args)
函数中可作为args[]
使用。
因此,如果要使用输入9执行isPrime
类中的代码,则正确的语法应为java isPrime 9
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.