将文件加载到java应用程序以传递给另一个类的最佳方法是什么?
目前我正在使用JFileChooser来选择源文件(C,C ++,Java),然后将其传递给名为src2srcml的可执行文件。我的代码运行src2srcml工具,该工具获取源文件并将其转换为XML,然后存储在我的工作区(eclipse)中。然后,我想要获取该XML文件并将其传递给另一个要分析的类。正如您在下面看到的,我正在尝试使用getResources方法。它可以找到文件,但我实际上并不知道如何将它传递给类UnitXMLReader。 GetResources返回文件的URL,但另一个类需要文件路径。有没有更好的方法来查找文件?
JButton btnRunSourceCode = new JButton("Run Source Code");
btnRunSourceCode.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//------Check for loaded file ----//
if(filePath == null){
textArea.setText("Please Load a source file (C, C++, Java)");
}
else{
try{
int c;
textArea.setText("Converting Source Code to XML");
String workspace = System.getProperty("user.dir");
String classPath = System.getProperty("java.class.path");
String[] commands = {"/bin/bash", "-c", "cd " + workspace + " && ./src2srcml --position " + selectedFile.getName() + " -o " + classPath + "/xmlParseGUI/targetFile.xml"};
Process src2XML = Runtime.getRuntime().exec(commands);
InputStream in1 = src2XML.getErrorStream();
InputStream in2 = src2XML.getInputStream();
while ((c = in1.read()) != -1 || (c = in2.read()) != -1) {
System.out.print((char)c);
}
src2XML.waitFor();
}
catch(Exception exc){/*src2srcml Fail*/}
}
ParallelXMlGUI c = new ParallelXMlGUI();
Class<? extends ParallelXMlGUI> cls = c.getClass();
// finds resource relative to the class location
URL url = cls.getResource("targetFile.xml");
//UnitXMLReader.ChosenFile = filePath;
//UnitXMLReader.main(null);
System.out.println("Value = " + url);
答案 0 :(得分:0)
File file = new File(classPath + "/xmlParseGUI/targetFile.xml);
Java有一个用于处理文件的文件类。尝试创建指向该文件的新File对象。然后传递新的File对象。
或者您可以尝试相对路径:
File file = new File("/smlParseGUI/targetFile.xml");
一对文件方法:
file.getPath();
file.getString();