当前位置: 首页 > 知识库问答 >
问题:

无法使用Groovy从Eclipse运行java代码到Jmeter

甄胡非
2023-03-14

下面的代码从excel文件中打印内容(在eclipse中尝试过),但我无法使用Groovy在Jmeter3.1中运行它。

我抛出了一个错误:

JSR223脚本中的问题JSR223采样器,消息:javax.script.脚本异常:org.codehaus.groovy.control.多重编译错误异常:启动失败

这是我的代码:

public static void main (String args[]) throws IOException
            {  
              GetExcelTableInto2DArrayListString("C:\\Users\\val1\\Desktop\\Book1.xlsx", true);


             }


            public static void GetExcelTableInto2DArrayListString(String excelFile, boolean debug) throws IOException{

            ArrayList<String> OUT = new ArrayList<String>();  
            File myFile = new File(excelFile); 
            FileInputStream fis = null;

                fis = new FileInputStream(myFile);

                String columnWanted = "PhysicalIDs";
                Integer columnNo = null;

            XSSFWorkbook myWorkBook = null;

                myWorkBook = new XSSFWorkbook (fis);


            // Return first sheet from the XLSX workbook 
            XSSFSheet mySheet = myWorkBook.getSheetAt(0); 

            // Get iterator to all the rows in current sheet 

            List<Cell> cells = new ArrayList<Cell>();

                Row firstRow = mySheet.getRow(0);   //rowIterator.next();


                for(Cell cell:firstRow){
                    if (cell.getStringCellValue().equals(columnWanted)){
                        columnNo = cell.getColumnIndex();
                    }
                }
                System.out.println(columnNo);
                DataFormatter formatter = new DataFormatter(Locale.US);

                if (columnNo != null){
                for (Row row : mySheet) {
                   Cell c = row.getCell(columnNo);
                   System.out.println(formatter.formatCellValue(c));
                   if (c == null) {
                      // Nothing in the cell in this row, skip it
                   } else {
                      cells.add(c);
                   }
                }
                }else{
                    System.out.println("could not find column " + columnWanted + " in first row of " + myFile.toString());
                }


            }

共有1个答案

史鹏云
2023-03-14

我强烈怀疑您的代码是否能在eclipse(无论是什么)和其他任何地方工作,因为这行代码:

public static void main (String args[])

在Java和Groovy中都不是语法正确的。

入口点的“良好”声明(尽管Groovy脚本不需要它)是:

public static void main(String[] args)

完整代码以防万一:

import org.apache.poi.ss.usermodel.Cell
import org.apache.poi.ss.usermodel.DataFormatter
import org.apache.poi.ss.usermodel.Row
import org.apache.poi.xssf.usermodel.XSSFSheet
import org.apache.poi.xssf.usermodel.XSSFWorkbook

public static void main(String[] args) throws IOException {
    GetExcelTableInto2DArrayListString("C:\\Users\\val1\\Desktop\\Book1.xlsx", true);


}


public static void GetExcelTableInto2DArrayListString(String excelFile, boolean debug) throws IOException {

    ArrayList<String> OUT = new ArrayList<String>();
    File myFile = new File(excelFile);
    FileInputStream fis = null;

    fis = new FileInputStream(myFile);

    String columnWanted = "PhysicalIDs";
    Integer columnNo = null;

    XSSFWorkbook myWorkBook = null;

    myWorkBook = new XSSFWorkbook(fis);


    // Return first sheet from the XLSX workbook
    XSSFSheet mySheet = myWorkBook.getSheetAt(0);

    // Get iterator to all the rows in current sheet

    List<Cell> cells = new ArrayList<Cell>();

    Row firstRow = mySheet.getRow(0);   //rowIterator.next();


    for (Cell cell : firstRow) {
        if (cell.getStringCellValue().equals(columnWanted)) {
            columnNo = cell.getColumnIndex();
        }
    }
    System.out.println(columnNo);
    DataFormatter formatter = new DataFormatter(Locale.US);

    if (columnNo != null) {
        for (Row row : mySheet) {
            Cell c = row.getCell(columnNo);
            System.out.println(formatter.formatCellValue(c));
            if (c == null) {
                // Nothing in the cell in this row, skip it
            } else {
                cells.add(c);
            }
        }
    } else {
        System.out.println("could not find column " + columnWanted + " in first row of " + myFile.toString());
    }


}

更多信息:

  • 教训:仔细看看“你好世界!”应用
  • 忙碌的开发人员指南HSSF和XSSF功能
  • Apache Groovy-为什么以及如何使用它
 类似资料:
  • 问题内容: 我在oracle站点上找到了此代码,但是我无法使用Eclipse启动,这是说“无法启动”。我已经安装了JDK 8,但是它不起作用… 有人有解决办法吗?:p 链接到找到代码的网站:https : //docs.oracle.com/javafx/8/embed_swing/jfxpub- embed_swing.htm 问题答案: 在Java 8中,即使没有方法,您也可以直接启动子类。问

  • 我尝试在eclipse中运行下面的代码,发布在这里。 但它并没有被执行。它抛出以下错误: 注意:我还添加了来自lib/extjmetr安装文件的外部罐 代码:

  • 我是owlapi的新手,我正尝试在debian上编写一个java代码示例,以加载我已经使用Protégé构建的本体。我正在使用“owlapi-osgiDistribution-4.0.2.jar”,但总是得到这个错误: 我试图使用maven进行依赖,但徒劳。谁能告诉我如何解决这个问题,谢谢。

  • 我刚刚下载了IDE,我想用它编辑我的第一个Java文件,我对创建整个项目不感兴趣,只是编辑单个文件。 因此,我使用Intellij IDEA从桌面上打开了该文件,因为我将其设置为打开。java文件的默认程序。 我写了一些代码,主运行和调试按钮是灰色的!我不能运行我的代码! 编辑:我也无法运行我的文件,无论它是否在一个项目中。

  • 问题内容: 基本上,我想做两件事: 我想知道是否可以使用Java代码运行Java代码。 如果可能的话,如何在屏幕上显示输出?(无论是常规输出还是错误或异常) 我知道这是可能的,因为我的一位前辈已经做到了,但是我不知道他是如何做到的。也许他使用了Java的内置类之一。 注意:用户将代码写入一些文本文件中,然后将文件内容存储在某个变量中,然后也许运行该代码。 问题答案: 是的,有可能。 步骤1:编译代

  • 我遵循了这些指示。这就是JDK和JavaFX的位置: VM参数为: 请帮助识别和整改问题。(我尝试了以下建议的几种方法,但似乎没有任何效果。)