Eclipse在运行java程序时停止响应

时间:2014-07-07 06:51:10

标签: java eclipse

package com.selenium;
import java.io.FileInputStream;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.io.IOException;

public class Exxcel {
public static void main(String[] args) throws Exception,NullPointerException{
    //WebDriver driver= new FirefoxDriver();
    //WebElement wb;
    String Value;
    try{
    FileInputStream file= new FileInputStream("C:\\Documents and Settings\\OMEGA\\Desktop\\Test Planning And Documents\\Automation Data.xlsx");
    Workbook data=WorkbookFactory.create(file);
    Sheet sheet=data.getSheet("Sheet1");
    for(int i=1;i<=sheet.getLastRowNum();i++){
        Row row = sheet.getRow(i);
        if(row != null){
        // Putting condition to check row is null or not
            for (int j = 1; j < row.getLastCellNum();) {
            if (row.getCell(j) != null) {
                // Putting condition to check row cell is null or not
                String value=row.getCell(j).getStringCellValue();
                Value=value;
                //String value1=row.getCell(j+1).getStringCellValue();
                String[] array= new String[2];
                array[0]=Value;
                //array[1]=value1;
                if( array[0] != null  ) {
                    // Putting condition to check array[] is null or not
                    System.out.println(array[0]); 
                    //System.out.println(array[1]);
                 }   
                }
            }  
        }
      } 
    }catch(NullPointerException n){
        n.printStackTrace();
        //System.out.println("Null");
        }// catch
    }//main
}//class

这是我试图运行的代码,但是一旦我点击运行按钮,它就会停止响应。不知道为什么会发生这种情况?

2 个答案:

答案 0 :(得分:4)

你的循环可能永远不会结束:

 for (int j = 1; j < row.getLastCellNum();) {

我没有看到j在您的代码中的任何位置递增。

主GUI线程上的无限循环会产生副作用以冻结IDE。


作为OP Shantanu commented,添加增量j ++足以解决这种情况:

for(int j=0; j<=row.getLastRowNumber(); j++) {
  ...
}

答案 1 :(得分:1)

您必须在第二个for循环上放置一个递增或递减操作符。你没有在第二个循环中放置任何条件,这就是你的程序进入无限循环并且eclipse在性能上变慢的原因。

使用以下代码更改您的代码:

for(int j=0; j<=row.getLastRowNumber(); j++)
{
  //Your Code
}