繁体   English   中英

Java命令行程序类路径问题

[英]Java Command Line Program Classpath Problem

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

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

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

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

您可以使用ClassLoader类方法之一

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

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

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

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

例如

Project1> java -classpath bin MyApp

这个从Eclipse获取classpath的答案有帮助吗?

暂无
暂无

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

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