Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从eclipseself加载文件_Java_File_Load - Fatal编程技术网

Java 从eclipseself加载文件

Java 从eclipseself加载文件,java,file,load,Java,File,Load,我正在和某人一起完成一项任务,我们需要能够加载和保存文件。目前我们是这样做的: robot1.getComputer().loadAndCompileProgram(new File("C:\\Projects\\IO\\program1.txt")); 然而,这需要他和我都在同一个地方有这个程序。我们更愿意将其存储在eclipse项目中,并能够加载该文件,而不管program1的完整位置在我们的计算机中。。 我们希望这样做: robot1.getComputer().loadAndCompi

我正在和某人一起完成一项任务,我们需要能够加载和保存文件。目前我们是这样做的:

robot1.getComputer().loadAndCompileProgram(new File("C:\\Projects\\IO\\program1.txt"));
然而,这需要他和我都在同一个地方有这个程序。我们更愿意将其存储在eclipse项目中,并能够加载该文件,而不管program1的完整位置在我们的计算机中。。 我们希望这样做:

robot1.getComputer().loadAndCompileProgram(new File("/Project D3 1.15/Progs/program1.txt"));
public class ExpMainClass {
    public static void main(final String[] args) throws Exception {
        System.out.println(new File(".").getAbsolutePath());
    }
}
项目D31.15是Java项目,完整字符串是Eclipse的program1中的路径。然而,这不起作用。是否可以执行我们想要的操作?

尝试新文件。/Progs/program1.txt或新文件Progs/program1.txt

除此之外:如果您在查找不同IDE下的文件时遇到问题,只需使用如下main方法创建简单类:

robot1.getComputer().loadAndCompileProgram(new File("/Project D3 1.15/Progs/program1.txt"));
public class ExpMainClass {
    public static void main(final String[] args) throws Exception {
        System.out.println(new File(".").getAbsolutePath());
    }
}

并运行它—这将有助于理解IDE在哪里执行应用程序。

Eclipse项目名称和计算机上的实际路径之间存在差异。 可以有一个名为Foo的项目,其路径为C:\Projects\Bar

但是,这样做是可能的,因为当您从Eclipse执行时,您位于当前目录中

就这么做吧

robot1.getComputer().loadAndCompileProgram(new File("Progs/program1.txt"));
或者如果要指定项目名称

robot1.getComputer().loadAndCompileProgram(new File("../Project D3 1.15/Progs/program1.txt"));

好的,您可以利用Java系统属性,例如user.dir来获取工作区,然后构建路径

新建FileSystem.getPropertyuser.dir+File.separator+program1.txt

如果通过Eclipse运行,则该文件将直接出现在您的工作区中

这将是一种真正独立于平台的做事方式。

您需要的是:

String myProjectDir = System.getProperty("user.dir");
robot1.getComputer().loadAndCompileProgram(new File(myProjectDir +"/myFolder/program1.txt"));

JVM环境变量user.dir指向从eclipse运行但无法运行的程序的项目目录。。用于引用当前上下文。当前上下文a.k.a.系统路径是java.exe的路径或运行程序的linux上的任何内容的路径。。。所以指向C:\javas之类的东西这是错误的,它确实有效。当从Eclipse启动时,当前上下文是Eclipse项目的根目录,而Eclipse是由OP声明的。如果项目的名称与根目录的名称相同,那么上面的两行代码都可以使用,否则,只使用第一行代码。此外,这很容易测试。创建一个名为foobar的eclipse项目,创建一个类,其主要方法是FileUtils.writeStringToFilenew文件../foobar/baz.txt,hi!;。现在执行程序并用eclipse刷新项目。您将在foobar项目中看到一个名为baz.txt的新文件。