eclipse不能运行java文件_Java在运行Eclipse时无法找到文件

问题很可能是您的应用程序正在使用相对路径名。正如@BalusC所说,相对的路径名可能是有问题的。但是,海事组织,他说“你应该永远不要在java.io的东西中使用相对路径”,他走得太远了。

当应用程序使用(例如)FileInputStream(File)构造函数打开文件时,相对路径名将相对于File.getAbsolutePath()的javadoc中描述的过程中的“当前目录”进行解析。

[…] Otherwise this pathname is resolved in a system-dependent way. On UNIX systems, a relative pathname is made absolute by resolving it against the current user directory. On Microsoft Windows systems, a relative pathname is made absolute by resolving it against the current directory of the drive named by the pathname, if any; if not, it is resolved against the current user directory.

所以立即看到,“当前目录”的概念在Windows和UNIX平台上有不同的细微差别。第二个问题是,在纯Java中,您无法确定当前目录是什么,您当然无法使用纯Java对当前JVM进行更改。 (当JVM启动时,“user.dir”系统属性设置为当前目录,但没有任何内容阻止应用程序更改属性,因此您不能完全依赖该应用程序。此外,更改“user.dir”仅更改空路径的解决方式,而不是一般的相对路径。)

那么你应该怎么做呢?

>一个选项是使用绝对路径名来引用文件。这在几乎所有情况下是可靠的,但是如果用户必须输入路径名,则使用绝对路径名可能会有问题,或者

如果您需要避免硬连线(或配置)的绝对路径名。

>第二个选项是使用classpath相对路径名,并相对于应用程序的安装目录定位文件。如果这是您需要做的工作,但如果您需要将文件传递给某些库方法,则会出现问题。如果您试图找到用户的应用程序首选项,它也没有帮助。 (一般来说,将用户偏好放入安装目录是一个错误…)

>第三个选项是相对于你从别的地方得到的绝对目录命名一个文件;例如新文件(System.getProperty(“home.dir”),“foo / bar”);.

>最后一个选择是使用相对的路径名,并假设用户知道当前目录是什么。对于用户从命令行运行的许多应用程序,这是正确的解决方案。

在Eclipse的特殊情况下,有一个简单的解决方案。转到您用于启动应用程序的“运行配置”,打开“参数”选项卡,然后单击“其他”单选按钮。然后输入绝对路径名作为启动应用程序的工作目录。当启动子JVM时,它将具有指定的工作目录作为其当前目录。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值