Java命令行程序类路径问题

时间:2011-09-15 21:47:47

标签: java classpath

所以我在Eclipse中有一个非常大的项目,运行良好并访问文件等。在Eclipse中,我访问具有与项目目录的根相关的本地目录名的文件。

因此,我的项目被称为“Project1”,并且位于名为“MyProjects”的目录中,因此它看起来像这样:“MyProjects / Project1”。我想访问名为“hello.text”的“MyProjects”文件夹中的文件。所以我只做“../hello.text”,当我在Eclipse中执行此操作时,它可以正常工作。

我遇到的问题是当我使用“java Project1”命令运行程序时,它运行程序正常但它无法访问该文件,因为从命令行执行程序时它会从“bin”目录中选择它们在“Project1”目录中。所以它弄乱了整个程序。无论如何在我的Windows环境或Eclise中都可以轻松地更改它吗?我希望我的问题有道理。我希望程序从“Project1”目录执行,如果可能的话,所以我不必每次都更改文件位置。

3 个答案:

答案 0 :(得分:1)

如何提供目录参数,以便您根本不必担心它?

答案 1 :(得分:1)

您可以使用ClassLoader类方法之一

public URL getResource(String name)
or 
public InputStream getResourceAsStream(String name)

以独立于代码位置的方式定位和访问类路径中的任何资源。对于exaple

InputStream myTextFileStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("Project1/Hello.txt") ;

答案 2 :(得分:0)

你不能从bin目录的父目录启动你的Java程序吗?

e.g。

Project1> java -classpath bin MyApp

this answer for getting classpath from Eclipse有帮助吗?