java文件的相对路径

好几次,在java中用相对路径打开文件,都报找不到文件的错误,改成绝对路径后正常。
今天准备检查一下,相对路径到底应该怎么写。

测试代码:
public class TestFilePath {
? public static void main(String[] args) {
??? TestFilePath testFilePath1 = new TestFilePath();
??? File file = new File("test.txt");
??? System.out.println(file.getAbsolutePath());;
? }
}

到命令行下用java命令执行该class文件,在不同的路径下执行,取得的结果不一样。
如下:
执行方法1:
F:\2004\projects\jbproject\myServer\classes>java test_bak.TestFilePath
F:\2004\projects\jbproject\myServer\classes\test.txt
执行方法2:
F:\2004\projects\jbproject\myServer>java -classpath classes test_bak.TestFilePath
F:\2004\projects\jbproject\myServer\test.txt
执行方法3:
F:\2004\projects\jbproject>java -classpath myServer/classes test_bak.TestFilePath
F:\2004\projects\jbproject\test.txt

可见,相对目录的起点,不是class文件所在的路径,而是,java解释器所在的位置。

不过,jbuilder下执行时,会以Jbuilder默认的命令执行,H:\JBuilder9\jdk1.4\bin\javaw -classpath ..... test_bak.TestFilePath
执行结果是F:\2004\projects\jbproject\myServer\test.txt
所以,如果在jbuilder下开发java应用程序操作文件,相对目录的起点一般是classes\的上一层目录,也就是应用目录,写出来的程序,
执行时再以-classpath classes 执行,就可以和开发时得到一样的结果。

?

时间: 2024-08-02 19:59:43

java文件的相对路径的相关文章

Java中实现获取路径的方法汇总_java

一. java文件中获得路径 Thread.currentThread().getContextClassLoader().getResource("") //获得资源文件(.class文件)所在路径 ClassLoader.getSystemResource("") Class_Name.class.getClassLoader().getResource("") Class_Name.class .getResource("/&qu

统计某个路径下所有的java文件,以及统计代码数量

这个是我哥们遇到的一个面试题. 要求统计某个文件夹下,所有Java文件的数量,并且统计代码数量. Java文件中,所有的注视都是以//,没有/**/,空行不计入代码数量. 这个面试题,里面有这样几个难点, 1.遍历文件夹,因为文件夹下可能还有文件夹. 2.读取文件,判断代码行,注释行,和空行. 3.写入文件. 其实主要的都是对文件的操作. 代码可以直接复制运行,代码如下: package com; import java.io.BufferedReader; import java.io.Fil

datainputstream-求助啊!java文件路径的问题

问题描述 求助啊!java文件路径的问题 从客户端传入一个文件路径:C:Usersmsg.log在服务器端接受到后无法获取指定的文件(确定文件路径下文件存在)服务器端: BufferedReader reader = new BufferedReader( new InputStreamReader(socket.getInputStream()));String str = null;char[] temp = new char[1024];reader.read(temp);str = St

java javascript-如何用java去读取FTP下的文件目录,可以手动选择文件上传路径

问题描述 如何用java去读取FTP下的文件目录,可以手动选择文件上传路径 如何用JAVA实现在本地浏览器点击添加按钮,跳转到FTP服务器的目录下,可以浏览FTP目录,选择需要的文件,然后把路径+文件名添加到input中,后台或js怎么实现?

深入分析java文件路径的详解_java

Java中使用的路径,分为两种:绝对路径和相对路径.归根结底,Java本质上只能使用绝对路径来寻找资源.所有的相对路径寻找资源的方法,都不过是一些便利方法.不过是API在底层帮助我们构建了绝对路径,从而找到资源的!在开发Web方面的应用时, 经常需要获取 服务器中当前WebRoot的物理路径.如果是Servlet , Action , Controller, 或则Filter , Listener , 拦截器等相关类时, 我们只需要获得ServletContext, 然后通过ServletCon

获取类的class文件的绝对路径

    在java中,经常要定位某些文件的位置,为了能让程序与物理位置无关,就要使用相对路径.但java中使用相对路径总会遇到一些很麻烦的问题,就是到底相对于哪个参照物的问题.因为我们平时使用相对路径总是相对当前工作目录而言的,但有时需求并非如此.比如,要在一个开发包中使用相对路径,却不知道开发包被其他程序调用时的所在路径,而且特别是在web应用中,很难确定某个文件在整个应用中的相对路径.     所以使用相对路径最好的办法就是让路径相对的参照物是我的开发包或我的应用本身的东西,最好的就是用我开

java文件操作大全

java文件操作大全 文件的建立/检查与删除<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.io.*"%><html><head><title>文件的建立.检查与删除</title></head><body><%String path=request.getRealPath

如何在 vim 中更好的编辑 java 文件

这次介绍一下如何在 vim 中更好的编辑 java 文件.作者: camry.wu@gmail.com 1. javabrowser 编辑类文件时, 类资源树是个有用的东西, 可以把类的成员, 方法等等很直观的 显示出来. 在 vim 中也可以实现好像 vc, jbuilder 那样的类资源树, 当然比 那些会简单些, 不过也够好用的了. 就是用 javabrowser.vim 这个脚本实现的. 先到 vim online 去找到这个脚本文件.(在这还能找到许多有用的其他脚本) 然后在 goog

java文件过滤器里的lambda表达式问题

问题描述 java文件过滤器里的lambda表达式问题 import java.io.File;public class FileNameTest{ public static void main(String[] args) { File file = new File("".""); String[] nameList = file.list((dir name) -> name.endsWith("".java""