令牌上的语法错误,放错位置的构造(s)

如何解决这个错误—>令牌上的语法错误,错误的结构错误是在下面的行中指出。 注意:这段代码被复制到网上,并试图让它作为一个学习工具使用我正在使用Eclipse谢谢!

import java.io.File; import java.io.FileOutputStream; import java.util.Map; import java.util.Set; import java.util.TreeMap; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class EcellTest22 { //Blank workbook XSSFWorkbook workbook = new XSSFWorkbook(); //Create a blank sheet XSSFSheet sheet = workbook.createSheet("Employee Data"); //This data needs to be written (Object[]) Map<String, Object[]> data = new TreeMap<String, Object[]>(); // data.put("1", new Object[]{"ID","NAME", "LASTNAME"}); <--Syntax error on token(s), misplaced construct(s) data.put("2", new Object[]{1, "Amit", "Shukla"}); data.put("3", new Object[]{2, "Lokesh", "Gupta"}); data.put("4", new Object[]{3, "John", "Adwards"}); data.put("5", new Object[]{4, "Brian", "Schultz"}); //Iterate over data and write to sheet Set<String> keyset = data.keySet(); int rownum = 0; for (String key : keyset) { //create a row of excelsheet Row row = sheet.createRow(rownum++); //get object array of prerticuler key Object[] objArr = data.get(key); int cellnum = 0; for (Object obj : objArr) { Cell cell = row.createCell(cellnum++); if (obj instanceof String) { cell.setCellValue((String) obj); } else if (obj instanceof Integer) { cell.setCellValue((Integer) obj); } } } try { //Write the workbook in file system FileOutputStream out = new FileOutputStream(new File("C:\\Documents and Settings\\admin\\Desktop\\imp data\\howtodoinjava_demo.xlsx")); workbook.write(out); out.close(); System.out.println("howtodoinjava_demo.xlsx written successfully on disk."); } catch (Exception e) { e.printStackTrace(); } } } 

您需要将所有声明放在代码块中的声明之后,例如方法而不是类块。 从逻辑上讲,将所有语句放在代码块中可能是有意义的,但非声明性语句需要包含在新块中

 private void processFile() { data.put("1", new Object[]{"ID","NAME", "LASTNAME"}); // <--Syntax error ...//snip } catch (Exception e) { e.printStackTrace(); } } 

将所有代码放在主要方法中:

 public static void main(String[] args) { //All of your code goes here } 

语句(这不包括声明)必须在一个块内执行。 看来你正在对一些代码进行testing,而这并不意味着你的代码是一个实际的对象,所以你必须把它放在主要的方法中。

问题解决了。 我在Eclipse中创build了一个新项目,将POI(jar)添加到库中,并且不再显示语法错误。