netbeans 在线程“main”中出现错误,如何修复?[duplicate]

ojsjcaue  于 2022-11-10  发布在  其他
关注(0)|答案(3)|浏览(157)

此问题在此处已有答案

What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it?(26个答案)
四个月前关门了。
我有一个问题,当我运行这个代码,我发现这个问题。如何解决它?

此代码

public class kpi {
      static String host = "";

      public static void main(String[] args) {
        host = args[0].toLowerCase();
        try {
          SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
          Date now = new Date();
          String strDate = sdfDate.format(now);
          JSch jsch = new JSch();
          Session session = jsch.getSession("hs", args[1], 22);
          session.setConfig("StrictHostKeyChecking", "no");
          session.setPassword("kti365LM");
          session.connect();
          System.out.println("session connected");
          Channel channel = session.openChannel("shell");
          OutputStream ops = channel.getOutputStream();
          PrintStream ps = new PrintStream(ops, true);
          channel.connect();
          System.out.println("channel connected");
          String prompt = "[local]" + args[0] + "#";
          System.out.println(exec(channel, ps, "epg node status", prompt));
          String nodeinfo = "";
          nodeinfo = exec(channel, ps, "pdc_kpi.pl", prompt);
          String[] linenode = nodeinfo.split("\\r?\\n");
          String key = "";
          JSONObject peerjson = new JSONObject();
          peerjson.put("time", strDate.replace(" ", "T"));
          peerjson.put("node", args[0]);
          for (int i = 6; i  0 && c  0) {`
                    Pattern p = Pattern.compile("(\\d+(?:\\.\\d+)?)");
                    Matcher m = p.matcher(fields[j]);
                    if (m.find()) {
                      System.out.println(key + ":" + m.group());
                      peerjson.put(key, Float.parseFloat(m.group().trim()));
                      c++;
                    } 
                  } 
                  key = key + fields[j];
                  c++;
                } 
                if (j > 4 && c == 0)
                  break; 
              } 
              key = "";
            } 
          } 
          insert(strDate, "nodekpimme", peerjson.toString());
          channel.disconnect();
          session.disconnect();
        } catch (Exception e) {
          e.printStackTrace();
        } 
      }

且该错误
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 at trcrt.kpi.main(kpi.java:24)

u7up0aaq

u7up0aaq1#

索引0将是第一个元素,但您参数中没有任何元素您可能正在不带参数运行应用程序如果希望这些参数可用,则需要使用pass them to args变量

hgqdbh6s

hgqdbh6s2#

你的代码很乱。我想i = 6,为什么这里是6。你应该仔细地跟踪得到**字段[j]**的值。你最终可以得到答案

mhd8tkvw

mhd8tkvw3#

您可能在没有传递任何参数给main()的情况下运行。尝试通过将“host = args[0].toLowerCase();“或者更好地控制args和args.length〉1的存在,如果args为空,则返回错误消息。

相关问题