【问题标题】:Syntax error on token ";", { expected after this token令牌“;”上的语法错误,{ 应在此令牌之后
【发布时间】:2009-11-18 11:04:42
【问题描述】:

为什么这一行有语法错误(如下图)

package org.temp2.cod1;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import java.io.*;

public class Code1 {

    byte[] plaintext = new byte[32];   // <<<<<<<<<<<<<<<<<<<<<<<<<< syntax error
    for (int i = 0; i < 32; i++) {
      plaintext[i] = (byte) (i % 16);
    }

    byte[] key = new byte[16];
    SecureRandom r = new SecureRandom();
    r.nextBytes(key);

    Cipher c = Cipher.getInstance("AES");
    SecretKeySpec k =  new SecretKeySpec(key, "AES");
    c.init(Cipher.ENCRYPT_MODE, k);
    byte[] encryptedData = c.doFinal(plaintext);
}
}

【问题讨论】:

    标签: java eclipse


    【解决方案1】:

    您忘记了入口点方法声明。尝试添加:

    public static void main(String[] args) {
    

    在出现错误的那一行之前。

    【讨论】:

    • eclipse 建议添加 public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException { 可以吗?
    • 是的——尽管如果你没有抛出任何异常,你可以省略 throws 子句。
    【解决方案2】:

    您的代码应该在方法中。在我看来,您已跳过 public void method(..) {

    【讨论】:

      【解决方案3】:

      您在方法 main 或其他方法中添加上述代码。 示例:public static void Code1 () { }

      【讨论】:

      • Java 约定是以小写字母开头的方法名。从技术上讲,代码不必在方法中。例如,它可能在初始化块中。关键是代码没有开始正确的代码块并且右括号不匹配。
      • 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-05
      • 1970-01-01
      • 2015-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多