【问题标题】:Understanding a Java syntax error了解 Java 语法错误
【发布时间】:2016-07-25 20:18:51
【问题描述】:

我对 java 比较陌生,但我不明白我遇到的错误。 Eclipse 没有向我推荐如何修复它。

我的以下代码出现以下错误:

“令牌“getChannel”的语法错误,此令牌后应有标识符”

import java.io.FileOutputStream;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;

public class main {
    URL website = new URL("http://ts.vtggames.net/extras.zip");
    ReadableByteChannel rbc = Channels.newChannel(website.openStream());
    FileOutputStream fos = new FileOutputStream("extras.zip");
    fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
}

【问题讨论】:

标签: java jar download


【解决方案1】:

这是一个声明:

fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);

它必须放在一个块中:基本上,它必须在 {} 包裹的类内的 some 句法结构中。

其他行是变量声明。这些可以超出块;这就是为什么第一个语法错误出现在fos.getChannel() 行。

您可以将所有行放在main 方法中,如下所示:

public class main {
  public static void main(String[] args) {  // <-- Add this line
    URL website = new URL("http://ts.vtggames.net/extras.zip");
    ReadableByteChannel rbc = Channels.newChannel(website.openStream());
    FileOutputStream fos = new FileOutputStream("extras.zip");
    fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
  }  // <-- and this line
}

【讨论】:

    【解决方案2】:

    正如@AndyTurner 所说,这不是正确的 Java 代码

    • Java 中的类应以大写字母开头
    • 你应该把你的主代码放在一个方法中
    • 应提供public static void main(String[] args) 以独立运行该类

    【讨论】:

    • "Java 中的类需要以大写字母开头" 不,它们不需要。这只是惯例。
    • "所有可执行代码都需要在一个方法中" 不,它可以在一个初始化块中,它不是一个方法。
    • @AndyTurner 我一发布就意识到 :)。
    • "必须提供公共静态 void main(String[] args) 方法作为运行器" 不编译类。
    • @AndyTurner 你说得对,应该措辞更好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多