Java输入错误:意外令牌附近的语法错误

时间:2015-10-17 11:11:46

标签: java

尝试创建一个Prime数字测试器,如下面的代码,但当我在终端窗口中输入java isPrime(9)时,我得

-bash: syntax error near unexpected token `('

我希望代码能够将truefalse读回给我。

有人也可以向我解释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));
    }

}

2 个答案:

答案 0 :(得分:2)

你应该用:

运行它
java isPrime 9 

命令行参数不在括号内传递。

答案 1 :(得分:1)

为什么java isPrime(9)会导致错误?好吧,bash shell专门处理()。要了解更多信息,请阅读此问题的答案 - How to use double or single brackets, parentheses, curly braces

你可以引用括号来强制bash放弃()的特殊处理。像java 'isPrime(9)'这样的东西。但这会打印另一个错误:Error: Could not find or load main class isPrime(9)

刚刚发生了什么?期望将java命令调用为java [options] MainClass [arg1 arg2 arg3...]java之后不以-开头的第一个单词是要执行的类。命令行中的其余单词在args[]函数中以main(String []args)形式提供。

因此,如果要在isPrime类中执行输入为9的代码,则正确的语法为java isPrime 9