说明:本文所有测试以java工程为例;
1. Eclipse下的java工程目录
eclipse的基本工程目录叫做workspace,每个运行时的eclipse实例只能对应一个workspace,也就是说,workspace是当前工作的根目录。
Eclipse在新建项目的时候会自动生成一些文件。这些文件比如.project、.classpath、.settings目录下的所有文件等。这些文件是Eclipse项目的元数据,描述了一个Eclipse项目。
1.1 修改工作空间
当你打开eclipse时候可能会提示你加载工作空间;
可以查看工作空间,并设置是否每次提示加载;
主菜单 Window > Preferences > General > Startup and Shutdown
选中或取消 Prompt for workspace on startup
eclipse菜单界面修改(切换)工作空间;
主菜单 File > SwitchWorkspace > Other...
1.2 Java Project 的目录结构
我自己新建一个java项目JavaProjectNew,全部默认配置,即只输入项目名就“Finish”:
文件目录结构 和 Java项目结构 如下:
bin目录是工程输出路径,存放了编译生成的.class文件
src目录为源码文件夹,存放的是.Java文件
.classpath和.project为工程描述文件
1.3 查看.project、.classpath文件
这两个配置文件使用普通的文本编辑器都可以打开;
2 Eclipse导入java文件、java项目、文件夹
2.1 导入java文件
菜单栏 项目右键 > import,选择General > File System,点击下一步 选择需要导入文件所在目录 > 关联复选框选择 > Finish
注意:我开始选择的目录是工程根目录,这样文件会加载到根目录下,其实也就是没法运行的;
解决问题:刚开始选择src目录,这样导入到src默认java源文件目录下,是可以进行编译的。
直接复制java文件到工程目录的src目录下,如(a)或(b):
(a)Eclise支持拖拽事件的,(eclipse项目资源管理器界面的操作)直接将文件拖到src目录下;等同于“Ctrl+C”java文件之后选中src包“Ctrl+V”。
(b)直接复制文件到项目的 src 目录下,然后界面“F5” 或者 项目右键“Refresh” 刷新。
提示: 如果导入的是同一个文件夹下的多个java文件,则可以 新建Package,命名同文件夹一致,然后导入该package,这样的好处是可以不用修改代码第一行“package pName” 。
2.2 导入java项目
菜单File > Import > 选择General > Existing Project into Workplace,点击下一步 选择需要导入的工程。
注意: 这个一般没什么问题,只是需要注意需要是完整的Java项目(包含各种元数据);还有就是同一个工作空间的项目不能重名。
2.3 导入java文件夹
直接复制java文件夹到工程目录的src目录下(同2.1),可通过编译;
直接复制java文件夹到工程目录下,这样不会被识别;
解决方法就是路径的构建
3 工作空间根目录 文件夹,无法工作 (文件夹转工程)
(1) 通过 File > Import > 选择General > Import Projects from Folder 导入文件夹可能会无法工作,因为eclipse无法识别这个文件夹为一个工程;
(2) 这时候将(存在的java项目的).classpath和.project文件 复制到该文件夹,并且(至少)修改一下 .project中ProjectName 标签中的文件名为该文件夹的名称,刷新可以看到文件夹图标有“J”标识:
虽然这时候已经没有报错了,可是这两个java文件是不能运行的,因为它没有被加入运行环境。
解决办法很多,本质都是将源码目录加载到项目;比如可以新建文件夹关联到项目的源码路径,java文件放进来就行。
对于配置文件的手动修改了解即可(极客除外);一个稍微复杂的项目的配置文件很可能是动态关联的,即使修改了几个还是很可能出异常;这种方法是备用的。
而对于相对简单的学习练习java程序来说,直接复制到现有项目(可以新建)是很快捷高效的办法。
4 相关使用提示
界面操作:当前选中的目录尤其要注意,菜单很多操作都是针对当前目录的,而不是整个工作空间;也就是要知道所做的操作是相对于当前工作空间还是当前的工程。对于很多修改配置之类的操作,需要重新刷新(加载)
图标判断:eclipse针对各种文件有相应的图标,通过图标可以初步快速的判断一些问题。
菜单的关联,eclipse功能比较强大,但可能有好多功能是自己不用关注或不使用的;同一个功能可以从不同的菜单调出,比如所有几乎所有功能都有快捷菜单;深入了解几个常用的功能菜单这样才不至于觉得很乱。