ClassLoaders.callStaticFunction Java Eclipse的InvocationTargetException

我已经创建了一个程序,通过使用ReverseXSL API将文本转换为xml。

该程序由应用程序通过调用静态方法( static int transformXSL )来执行。

我可以通过从Eclipse运行来执行和生成输出。 但是,当我使用应用程序运行程序(jar)时,它卡在某处,我找不到任何东西。

然后,我从Eclipse中的“Debug as …-> Remote Java Application”调试,并在ClassLoaders.callStaticFunction中找到“InvocationTargetException”。

的InvocationTargetException

下面的静态方法由应用程序调用。

公共类MyTest4 {

public MyTest4() { } public static int transformXSL(String defFile, String inputFile, String XSLFile, String OutputFile) { System.out.println("Dheeraj's method is called"); // start time FileWriter fw=null; try { fw = new FileWriter("D://Countime.txt"); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } BufferedWriter output=new BufferedWriter(fw); DateFormat sd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); Date dt= new Date(); System.out.println("Date is calculated"); try { output.write("Start Time:"+sd.format(dt).toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(sd.format(dt)); FileReader myDEFReader=null, myXSLReader=null; TransformerFactory tf = TransformerFactory.newInstance(); Transformer t=null; FileInputStream inStream = null; ByteArrayOutputStream outStream = null; // Step 1: //instantiate a transformer with the specified DEF and XSLT if (new File(defFile).canRead()) { try { myDEFReader = new FileReader(defFile); System.out.println("Definition file is read"); } catch (FileNotFoundException e) { e.printStackTrace(); } } else myDEFReader = null; if (new File(XSLFile).canRead()) try { myXSLReader = new FileReader(XSLFile); System.out.println("XSL file is read"); } catch (FileNotFoundException e) { e.printStackTrace(); } else myXSLReader = null; try { t = tf.newTransformer(myDEFReader, myXSLReader); } catch (IOException e) { e.printStackTrace(); } System.out.println("Step 1: DEF AND XSLT Transformation completed"); // Step 2: // Read Input data try { inStream = new FileInputStream(inputFile); } catch (FileNotFoundException e) { e.printStackTrace(); } outStream = new ByteArrayOutputStream(); System.out.println("Step 2: Reading Input file: completed"); // Step 3: // Transform Input try { try (BufferedReader br = new BufferedReader(new FileReader("D://2.txt"))) { String line = null; while ((line = br.readLine()) != null) { System.out.println("Content: "+line); } } System.out.println("File: "+inputFile.toString()); System.out.println("\n content: \n"+ inStream.toString()); System.out.println("Calling Transform Function"); t.transform(inStream, outStream); System.out.println("Transformation is called"); outStream.close(); try(OutputStream outputStream = new FileOutputStream(OutputFile)) { outStream.writeTo(outputStream); System.out.println("Outstream is generated; Output file is creating"); } System.out.println(outStream.toString()); } catch (TransformerException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (FactoryConfigurationError e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TransformerFactoryConfigurationError e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (javax.xml.transform.TransformerException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("output file is created"); // End time Date dt2= new Date(); System.out.println(sd.format(dt2)); System.out.println("End time:"+dt2.toString()); try { output.append("End Time:"+sd.format(dt2).toString()); output.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return 0; } 

}