![](/img/trans.png)
[英]how to get full path of the current file including the src file in 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.