java Main方法不会以Eclipse结尾
我正在使用java(1.6)和WebDriver(2.16)在Eclipse(Indigo)中开发测试
我有一个相当简单的测试,运行良好,但实际上并没有“结束”。我的意思是,在执行了“main”方法中的所有代码行之后,Eclipse控制台仍然指示代码正在运行(控制台中的红色“Terminate”按钮已启用)
直到昨天,在我用一些新代码扩展了测试脚本之后,这才开始发生。我认为这就是问题所在,于是评论了所有新代码。不幸的是,这个问题依然存在
我该如何解决这个问题
谢谢你的意见
编辑
下面是JStack线程转储的相关部分。有关完整转储,请参见here
2012-01-07 10:56:40 Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.4-b02 mixed mode):
"Thread-7" daemon prio=6 tid=0x0000000008c08800 nid=0x12f4 runnable [0x000000000 921f000] java.lang.Thread.State: RUNNABLE at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(Unknown Source) at org.apache.commons.exec.StreamPumper.run(StreamPumper.java:105) at java.lang.Thread.run(Unknown Source)
"Thread-6" daemon prio=6 tid=0x0000000008d7b800 nid=0xb98 runnable [0x0000000009 11f000] java.lang.Thread.State: RUNNABLE at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(Unknown Source) at java.io.BufferedInputStream.fill(Unknown Source) at java.io.BufferedInputStream.read1(Unknown Source) at java.io.BufferedInputStream.read(Unknown Source) - locked <0x00000007d5a00888> (a java.io.BufferedInputStream) at java.io.FilterInputStream.read(Unknown Source) at org.apache.commons.exec.StreamPumper.run(StreamPumper.java:105) at java.lang.Thread.run(Unknown Source)
"Thread-5" prio=6 tid=0x000000000678b000 nid=0x10e4 runnable [0x000000000901f000 ] java.lang.Thread.State: RUNNABLE at java.lang.ProcessImpl.waitFor(Native Method) at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecut or.java:347) at org.apache.commons.exec.DefaultExecutor.access$200(DefaultExecutor.ja va:46) at org.apache.commons.exec.DefaultExecutor$1.run(DefaultExecutor.java:18 8) "main" prio=6 tid=0x000000000062e000 nid=0x450 runnable [0x000000000261f000] java.lang.Thread.State: RUNNABLE at java.lang.Thread.exit(Unknown Source)
编辑
以下是我的Excel代码(使用java IO和Apache的POI类)
public HashMap<String, String> getTestData()
{
InputStream myxls = null;
try {
// Create a connection to the Excel file
myxls = new FileInputStream(fileName);
System.out.println("Excel Input was opened");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}
// Define a workbook object
HSSFWorkbook wb = null;
try {
// Instantiate the workbook object
wb = new HSSFWorkbook(myxls);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Create a worksheet object
HSSFSheet sheet = wb.getSheet(sheetName);
// Read the first row (it always contains the headers (variable names)
HSSFRow headerRow = sheet.getRow(0);
// Read the row requested
HSSFRow row = sheet.getRow(dataRow);
//System.out.println("Creating a new HashMap from row " + dataRow + " in sheet " + sheetName);
// Define a collection of value/value pairs
HashMap<String,String> testData = new HashMap<String,String>();
// Get count of columns != empty
int columnCount = row.getPhysicalNumberOfCells();
//System.out.println(Integer.toString(columnCount));
String textHeader;
String textData;
// Loop through the columns
for(int colcount=0; colcount < columnCount; colcount++)
{
// Read the column header and the cell value
HSSFCell cell = row.getCell(colcount);
HSSFCell headerCell = headerRow.getCell(colcount);
switch (headerCell.getCellType ())
{
case HSSFCell.CELL_TYPE_NUMERIC :
{
// cell type numeric.
textHeader = Double.toString(headerCell.getNumericCellValue());
//System.out.println(textHeader);
break;
}
case HSSFCell.CELL_TYPE_STRING :
{
// cell type string.
HSSFRichTextString richTextString = headerCell.getRichStringCellValue();
textHeader = richTextString.getString();
break;
}
default :
{
// types other than String and Numeric.
textHeader = "Type not supported";
break;
}
}
switch (cell.getCellType ())
{
case HSSFCell.CELL_TYPE_NUMERIC :
{
// cell type numeric.
textData = Double.toString(cell.getNumericCellValue());
break;
}
case HSSFCell.CELL_TYPE_STRING :
{
// cell type string.
HSSFRichTextString richTextString = cell.getRichStringCellValue ();
textData = richTextString.getString();
break;
}
case HSSFCell.CELL_TYPE_BLANK :
{
// cell type string.
textData = "";
break;
}
default :
{
// types other than String and Numeric.
textData = "Type not supported";
break;
}
}
// Add the value of each cell to the HashMap collection
testData.put(textHeader,textData);
//System.out.println(textHeader + " / " + textData);
}
try{
// End the file object
myxls.close();
System.out.println("Excel Input was closed");
}
catch (IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
// Send the HashMap back to the calling code
return testData;
}
共 (0) 个答案