理解eclipse(java工程)的工作目录
来源:互联网 发布:c语言continue用法 编辑:程序博客网 时间:2024/05/16 09:50
======================================================
注:本文源代码点此下载
======================================================
http://eliottech.iteye.com/blog/136445
首先我们说明一下elipse对工程的管理。eclipse的基本工程目录叫做workspace,每个运行时的eclipse实例只能对应一个 workspace,也就是说,workspace是当前工作的根目录。我们在workspace中可以随意创建各种java相关的工程,普通的java 应用,java web应用,web service应用等,我们仅拿普通的java application来说明。
通常我们创建一个javaapplication工程,会创建一个工程目录,假设工程名称为:testproject,那么在当前的workspace里讲创建一个目录名为 testproject,同时我们选择src作为源码文件夹,bin作为输出路径,这样就构成了一个基本的javaapplication工程。,在workspace中存在如下文件夹:
+workspace
+testproject
-src
-bin
这个时候我们创建的代码将写入src目录,输出的class文件将存在于bin目录。
这时候我们在src目录下创建一个类,就叫做testclass,里面有一个main方法如下:
java代码
public static void main(string[] args){
system.out.println(new file("test.txt").exist());
}
同时在src目录下创建一个空的文件test.txt。什么都不要做,保存工程,打开资源管理器,我们来查看workspace/testproject/bin目录,下面会存在两个文件:testclass.class和test.txt。
此时我们设想,程序的内容就是检查test.txt文件是否存在,按照现在的目录规划,我们认为,在控制台上将打出“true”,ok,我们回到eclipse中,运行testclass这个类。控制台输出了:false!
为什么我们得到了并非我们预期的结果呢?先别着急,我们打开windows的命令行界面(或者linux的shell都ok),将目录切换到 workspace/testproject/bin目录下,执行如下命令javatestclass,看看出现什么结果?true!对,就是true。
为啥同样的程序会有不同的结果呢?这个答案很简单,就出在了java.exe本身的一个参数-cp(classpath)上!
eclipse默认的classpath包括三个部分:
1、jdk的bin目录;
2、工程引用的所有其他jar包路径
3、工程根路径(对,不是bin路径)
那么我们就可以理解来,在classpath的根路径中并不存在这个test.txt文件,用相对路径描述,这个文件实际存在于 src/test.txt和bin/test.txt。那么这个时候就有疑问了,如果我们打包发布工程,是不是jar包中就会有bin这个目录呢?幸运的 是,eclipse考虑好了这个问题。通过eclipse的导出jar能力,bin目录会作为jar的根目录,而不是bin的上层的工程目录,这样类的包 路径就是正确的,同时,工程目录下的资源文件、配置文件等也被拷贝到这里,也就是相当于把工程目录下的这些文件拷贝到来bin目录后再打包,这样文件的相 对路径也就符合默认的classpath了。
eclipse实际是提供来一种策略来实现源代码文件和配置\资源文件的单独管理能力,利用classpath兜了个圈子,这种做法有些晦涩,但是不失为软件工程的一个启发。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
- 理解eclipse(java工程)的工作目录
- 理解eclipse(java工程)的工作目录
- Eclipse(java工程)的工作目录
- Eclipse下的java工程目录
- Eclipse下的java工程目录
- Eclipse下的java工程目录
- Eclipse下的java工程目录
- Eclipse下的java工程目录问题和Classpath路径问题理解
- Eclipse:java工程目录详解
- 启动Eclipse提示建立工程的工作空间&&删除原有工作空间的目录
- Eclipse-----Java Web工程目录结构
- 一个简单的工程来理解android工作(-)
- eclipse,工程/文件目录,相对路径(真心的详细~)
- eclipse,工程/文件目录,相对路径(真心的详细~)
- eclipse,工程/文件目录,相对路径(真心的详细~)
- eclipse工程/文件目录,相对路径(真心的详细~)
- eclipse,工程/文件目录,相对路径(真心的详细~)
- eclipse 利用windows资源管理器打开当前文件所在目录 | eclipse下的Java工程路径问题
- 黑色的孤鸟
- 检测浏览器是否支持ajax ===小代码
- Delphi的多线程
- Java 环境变量的配置
- delphi中制作报表(WORD)之我见---转
- 理解eclipse(java工程)的工作目录
- C#写的ActiveX弹出窗口在Delphi程序中的应用时出现了问题。
- javascript delete
- velocity 日志使用 log4j
- Prototype.js & AJAX
- ajax跨域问题的另类解决方法
- Java中堆栈和堆(以及一些用法)
- HTML5设计原理
- Java线程的一些整理