热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javaurl相对路径_java相对路径、绝对路径及类路径

importjava.io.File;importjava.net.URL;***java相对路径、绝对路径及类路径的测试*publicclassTest{***测试相对路径是相对

importjava.io.File;importjava.net.URL;/*** java相对路径、绝对路径及类路径的测试*/

public classTest {/*** 测试相对路径是相对谁

* -- 相对于部署项目的文件夹(AppServer)*/

//@org.junit.Test

public void testRelativePath() throwsException {

String filePath= "test//t.txt";

File file= newFile(filePath);if (!file.exists()) {if (!file.getParentFile().exists()) {

file.getParentFile().mkdirs();

}

file.createNewFile();

}

System.out.println(file.getAbsolutePath());//E:\workspace\AppServer\test\t.txt

}/*** 测试绝对路径*/

//@org.junit.Test

public void testAbsolutePath() throwsException {

String filePath= "D:\\path\\test.txt";

File file= newFile(filePath);if (!file.exists()) {if (!file.getParentFile().exists()) {

file.getParentFile().mkdirs();

}

file.createNewFile();

}

System.out.println(file.getName());//test.txt

System.out.println(file.getAbsolutePath()); //D:\path\test.txt

}/*** 获取ClassPath(类路径)*/

//@org.junit.Test

public void testClassPath() throwsException {/*来个对比(各种情况下ClassPath的值):

1) 直接junit运行方法时打印:(给这个类单独创建了一个ClassPath)

/E:/workspace/AppServer/target/test-classes/

2) Eclipse启动tomcat时打印(tomcat插件中的ClassPath):

/E:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/AppServer/WEB-INF/classes/

3) 单独启动tomcat时打印(tomcat中的类路径):

/E:/apache-tomcat-7.0.62/webapps/AppServer/WEB-INF/classes*/

//获取类路径

URL url = this.getClass().getResource("/");//file:/E:/workspace/AppServer/target/test-classes/

String path=url.getPath();//看看类路径下都有啥

File file = newFile(path);//直接junit运行方法

for(File f : file.listFiles()) {

System.out.println(f.getName());//还没有文件被编译,啥也没有

}

}/*** 测试路径中的正反斜杠*/

//@org.junit.Test

public void testSprit() throwsException {//文件已经存在

String filePath = null;/** 正斜杠'/'*/filePath= "D:/path/test.txt"; //D:\path\test.txt

filePath = "D://path//test.txt"; //D:\path\test.txt

filePath = "D:/path//test.txt"; //D:\path\test.txt

filePath = "D:pathtest.txt"; //D:\path\test.txt

/** 反斜杠'\'*/filePath= "D:\\path\\test.txt"; //D:\path\test.txt//filePath = "D:\path\test.txt";//编译都通过不了啊,\t是一个制表符//filePath = "D:\\\path\\test.txt";//编译都通过不了啊//正反斜杠混合使用

filePath = "D:\\path/test.txt"; //D:\path\test.txt

filePath = "D:/path\\test.txt"; //D:\path\test.txt

File file= newFile(filePath);

System.out.println(file.getAbsolutePath());

}

@org.junit.Testpublic void testName() throwsException {

String filePath= null;

filePath= "D:/path/test.txt"; //D:/path/test.txt

System.out.println(filePath);

filePath= "D://path//test.txt"; //D://path//test.txt

System.out.println(filePath);

filePath= "D:/path//test.txt"; //D:/path//test.txt

System.out.println(filePath);

filePath= "D:pathtest.txt"; //D:pathtest.txt

System.out.println(filePath);/** 反斜杠'\'*/filePath= "D:\\path\\test.txt"; //D:\path\test.txt

System.out.println(filePath);//正反斜杠混合使用

filePath = "D:\\path/test.txt"; //D:\path/test.txt

System.out.println(filePath);

filePath= "D:/path\\test.txt"; //D:/path\test.txt

System.out.println(filePath);

}/*** 总结:

* 1) 相对路径

*

* 相对路径:是相对于application(服务)目录所在的路径。

*

* 比如:

* 相对路径为"test/t.txt", 服务目录为:"D:/App"

* 则t.txt的绝对路径为:"D:/App/test/t.txt"

*

* 2) 绝对路径

*

* 没什么好说的。

*

* 3) 类路径

*

* a. Eclipse中右键运行(为当前类单独创建了一个类路径):

* /E:/workspace/AppServer/target/test-classes/

*

* b. Eclipse中启动tomcat(tomcat插件中的类路径)::

* /E:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/AppServer/WEB-INF/classes/

*

* c. tomcat中启动start.bat(tomcat服务中的类路径):

* /E:/apache-tomcat-7.0.62/webapps/AppServer/WEB-INF/classes

*

* 4) 路径中的正反斜杠(/ \)

*

* a. '/' 正斜杠

* 怎么用都是对的,无论是单斜杠,双斜杠,多斜杠 或 混合使用,都能正确的解析文件路径。

*

* b. '\' 反斜杠

* 只能使用双斜杠'\\'.

* 单斜杠,多斜杠 或 混合使用都会报错。编译都不能通过。

*

* c. 正反斜杠混合使用

* 反斜杠只能使用双斜杠'\\', 正斜杠随意。 都能正确解析出路径。 "D:/aaa\\/bb.txt",这种写法也能解析。

*

* d. 反双斜杠'\\',运行时打印字符串时会变成'\'。

* 正斜杠,运行时打印字符串,打印结果和编译前一致。*/}



推荐阅读
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • Struts2+Sring+Hibernate简单配置
    2019独角兽企业重金招聘Python工程师标准Struts2SpringHibernate搭建全解!Struts2SpringHibernate是J2EE的最 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 初探PLC 的ST 语言转换成C++ 的方法
    自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
author-avatar
歪歪Doris
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有