繁体   English   中英

如何获取包含/ src /的java文件的路径

[英]How to get path of java files including /src/

im正在从事一个可以在PC中编译/运行现有Java文件的项目。

大多数代码都能很好地运行,但是我在获取Java文件的路径时遇到了问题。

这是有问题的代码

void uploadJ() {    
    System.out.print("Insert File name : "); //ex)HelloWorld.java
    FileName = sc.next(); 
    }

void Compile(){ 
    String s = null;
    File file = new File(FileName);
    String path = file.getAbsolutePath();

    try {
        Process oProcess = new ProcessBuilder("javac", path).start();
        BufferedReader stdError = new BufferedReader(
            new InputStreamReader(oProcess.getErrorStream()));
        while ((s = stdError.readLine()) != null) {
                FileWriter fw = new FileWriter(E_file, true);
                fw.write(s);
                fw.flush();
                fw.close();
        } 
    } catch...
}

例如,当我将HelloWorld.java作为文件名时,

HelloWorld.java的绝对路径应为C:\\ Users \\ user \\ eclipse-workspace \\ TermProject \\ src \\ HelloWorld.java

但是结果是C:\\ Users \\ user \\ eclipse-workspace \\ TermProject \\ HelloWorld.java

它错过了/ src /,因此总是以javac:文件未找到错误结尾

编译完应用程序后,将没有src目录。 该工作目录也可以设置为任何内容。 您也不能保证您要查找的文件是实际文件,在jar文件的上下文中不是。

但是,您可以从类路径加载文件。 您可以使用Class#getResourceAsStream(String)

查找具有给定名称的资源。 搜索与给定类关联的资源的规则由该类的定义类加载器实现。

查找文件可以通过调用this.getClass().getResourceAsStream("/" + FileName) ,并带有/导致从资源根目录进行搜索。

要将其与javac一起使用,您必须创建一个临时文件,并使用从getResourceAsStream获得的数据流填充该文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM