2016-07-25 64 views
0

我对Java很新,我不明白我收到的错误。 Eclipse不会向我推荐如何解决它。了解Java语法错误

我正在用我下面的代码以下错误:

“语法错误令牌‘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); 
} 
+0

你必须把语句放在某种类的块中,比如方法。 –

+0

参见:http://stackoverflow.com/questions/18795467/system-out-println-statement-outside-any-method-in-java,http://stackoverflow.com/questions/12062481/why-cant-i -do-assignment-a-method – azurefrog

回答

1

这是一个声明:

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

它必须在一个块:基本上,它必须在一些句法结构包装在{}

其他行是变量声明。这些可以走出街区;这就是为什么第一个语法错误在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 
} 
0

正如@AndyTurner提到的,这是不妥当的Java代码

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

“Java中的类需要以大写字母开头”否否。这仅仅是约定。 –

+1

“所有可执行代码都需要在方法中”否,它可以位于初始化程序块中,而不是方法。 –

+0

@AndyTurner我意识到,尽快我发布:)。 – Jeeter