繁体   English   中英

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

[英]Java Input error: Syntax error near unexpected token

尝试创建一个类似下面的代码的质数测试器,但是当我在终端窗口中输入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));
    }

}

您应该使用以下命令运行它:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM