|  
 
 
JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2 
F盘下有aa.txt文件内容如下 60 70 65 70...如此竖排顺序往下,共17个数字 
求其平均数 
Java code?package demo1;  import java.io.BufferedReader;  import java.io.File;  import java.io.FileInputStream;  import java.io.InputStreamReader;     public class AVGStream {             public static void main(String[] args) {                  try{                      File file=new File("F:\\aa.txt");                      FileInputStream fis=new FileInputStream(file);                      InputStreamReader is=new InputStreamReader(fis);                      BufferedReader br=new BufferedReader(is);                      String line=null;                      int n = 0;                      double total = 0;                      while((line=br.readLine())!=null)             {             total+=Integer.parseInt(line);             n++;             }             double avg=(total/n);             System.out.println(avg);         }         catch(Exception ex)         {}         }  }  
打了断点,while循环到16个都可以正常累加,但是第17个就报错了,错误代码为: ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2 JDWP exit error AGENT_ERROR_NO_JNI_ENV(183):  [../../../src/share/back/util.c:838] 百度搜索为JDK问题,我将while循环改成for,虽然只能执行2位相加但是能正常输出,应该不是JDK的问题吧 
用你的代码我做了下测试,按你的要求我发现没错!!但我发现要是把你的aa.txt中的某行数字的前面或者后面加上空格时就不能打印出结果,建议楼主把 Java code?1  total+=Integer.parseInt(line);  这行代码改为  Java code?1 total+=Integer.parseInt(line.trim());  while((line=br.readLine())!=null){ line=line.trim(); if("".equals(line)){ continue; } total+=Integer.parseInt(line); n++; } 
注意去掉空行,编码时要小心。 
 |