今JAVAのプログラムの勉強(初心者)をしているのですが、とある参考書のプログラムコードを書いて実行すると Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at rensyu7.pkg1.Rensyu71.main(Rensyu71.java:18) Java Result: 1 というエラーが起きておりどこがエラーなのかコードを眺めてみたのですがよくわかりません。 クラス: Rensyu71 package rensyu7.pkg1; import java.lang.reflect.*; public class Rensyu71 { /////////////////////////////////////////////////////////////////////////////// // mainメソッド ////////////////////////////////////////////////////////////////////////////// public static void main (String[] args) { String FQCN = args[0]; String hairetu = args[1]; try { Class>class1 = Class.forName (FQCN); listMethods (class1); //listMethodsの呼び出し if (hairetu.equals ("E")) { launchInternal (class1); //launchInternalメソッドの呼び出し }else if(hairetu.equals ("I")){ launchInternal (class1); //launchInternalメソッドの呼び出し }else{ throw new IllegalArgumentException ("起動方法が不正です"); } } catch (Exception e) { System.out.println (e.getMessage ()); e.printStackTrace (); System.exit (1); } showmemory (); //showmemoryの呼び出し System.exit (0); } /////////////////////////////////////////////////////////////////////////// // listMethodsメソッド //////////////////////////////////////////////////////////////////////////// public static void listMethods(Class>class1){ System.out.println ("メソッド一覧を表示します"); Method[]hairetu2 = class1.getDeclaredMethods (); for (Method m : hairetu2) { System.out.println (m.getName ()); } } //////////////////////////////////////////////////////////////////////////// // launchExternalメソッド //////////////////////////////////////////////////////////////////////////// public static void launchexternal(Class>class1) throws Exception{ ProcessBuilder PB = new ProcessBuilder ("java",class1.getName ()); Process process = PB.start (); process.waitFor (); } //////////////////////////////////////////////////////////////////////////// /// launchInternalメソッド //////////////////////////////////////////////////////////////////////////// public static void launchInternal(Class>class1)throws Exception{ Method m = class1.getMethod ("main", String[].class); String[] args = {}; m.invoke (null, (Object)args); // } //////////////////////////////////////////////////////////////////////////////// // shoememoryメソッド /////////////////////////////////////////////////////////////////////////////// public static void showmemory(){ long free = Runtime.getRuntime ().freeMemory (); long total = Runtime.getRuntime ().totalMemory (); long memorisiyouryou = (total-free)/1024/1024; System.out.println ("現在のメモリの使用量:"+memorisiyouryou+"MB"); } } ============================================================================ クラス:MemoryEater package rensyu7.pkg1; public class MemoryEater { public static void main (String[] args) { System.out.println ("eating memory・・・・・・・"); long[] larry = new long[128000]; for (int i = 0; i
↧