软件-eclipse

来源:互联网 发布:win7 网络连接 感叹号 编辑:程序博客网 时间:2024/06/15 18:04

1,java project基本结构

1.1 设计:

目录:src         #写入工程的源代码目录:test        #对应源代码的测试代码目录:lib         #第三方jar包目录:conf        #配置文件,因为不在src和test中(source folder默认是classpath路径),所以需要run as config加入该目录到classpath文件:build.xml   #便于命令行ant文件:Readme.txt  #说明文件

1.2 图例:

[xxx@xxx workspace]$ tree testConfig/testConfig/├── bin│   └── com│       └── aliyun│           └── app│               ├── Main.class│               └── Test.class├── build│   └── ...├── build.xml├── conf│   └── app_config.property├── lib│   └── gson-1.7.1.jar├── Readme.txt├── src│   └── com│       └── aliyun│           └── app│               └── Main.java└── test    └── com        └── aliyun            └── app                └── Test.java



1.3 说明:

1,上图中的src和test:
注意是建立file->new->Source Folder方式建立的,Source Folder不同于Folder,默认成为Source,这可以在Java Build Path的Source选项下看到。Source说明了是默认的classpath路径。所以如果你直接把config文件放置在上图中的src或test下的任意一层目录下,在java代码中只要load("a.config")(注意不需要相对路径或绝对路径,只要文件名就可以)就都可以找到。但是如果config文件放置在Project下与src、build.xml同层,就不可以读到了。
2,上图中的conf:
或者你也可以放置配置文件于conf中,在run as config中手动加入该文件夹,这样,也会把a.config加入到classpath中来。一般你下载到一个project,默认应该把这个文件下载到本地,要放入eclipse,那么其conf目录规范的应该配置在run as config中。另外,特别的,bin目录是默认的class文件路径,也在classpath下,所以你要直接读什么配置,放置在bin下也是可以的。
3,上图中的build.xml:
build.xml是为了在命令行下,使用java -cp 方式调用jar包,build.xml规定了一些命令来处理jar包生成规则,在命令行ant就可以得到build文件夹。
4,上图中的lib:
lib的作用是代码使用的第三方jar包,默认你应该把这个目录在build path中add jar进来。

2,project中两个重要的配置

2.1 Build Path

Java Build Path是针对project来说的,每个project在编译时需要检查文件中引用的其他的包或者代码,如果不在Java Build Path中设置,那么语法检查就会使文件上面有小红叉叉。

这里解释Java Build Path中的几个选项的作用:

1,“Source”

它允许您设置Eclipse将在哪里查找源文件,还可指定哪些源文件是要用的哪些是可以忽略的。

2,“Projects”

它允许您设置当前项目所依赖的项目,这样,您可以在一个项目中设置一些库或公共代码,并从其他项目简单地包含该项目。

3,“Libraries”

它允许您将JAR文件、库和类文件夹添加到类路径中。

注意add jar和add external jar的区别在于,建议使用add jar时加入工程lib文件夹下的jar包,.classpath中会使用相对路径;而add external jar则会使用绝对路径,一旦移动位置,add external jar的一定会有问题。

4,“Order and Export”

当你的一个ProjectA 要使用ProjectB,可以导入B的jar包,但是如果要debug,就必须使用源码,可以导入ProjectB。“Order and Export”中设置先选用哪个。

   <加入jar包:buildPath->Libraries->加入jar>
   <加入源码:buildPath->projects->加入project>

这里再解释一下eclipse的编译机制:

Eclipse有一个增量编译器,每次保存一个Java文件时它就自动进行编译。这个特性被称做“自动构建”。假如不需要这个功能,可以在Project->Build Automatically中设置,关闭这个特性。随后工具条中会出现“Build All”的按钮。类似的选项也会出现在相关的选单中。

这里示例一下BuildPath在hive中的设置:








2.2 Run configurations

Run configurations是针对某个main文件来说的,用来配置main函数的一些参数,运行环境等。


这是里的.classpath配置的是我需要临时加载的文件路径,因为你在文件里常常用一些配置文件,比如a.config。

在java中读这个文件,其实不需要写相对路径(例如"./conf/a.config"),只需要写入文件名("a.config"),那么eclipse会自动在classpath下去查找这个文件。如何配置classpath呢,一种是默认的,当你新建立一个Source Folder(注意不是文件夹folder),那么这个目录就会加入到source里,source里的都是默认的classpath路径。或者你需要在run as config时手动加入这个文件,一般是加入一个conf文件夹,于是你在.classpath里面明确指明了这个路径,如下示:




3,eclipse项目的.project和.classpath文件

如果你想要导入一个工程,即project->import->existing java project,必须要原来的工程有3.1和3.2这两个文件:

3.1 .classpath

.classpath的位置定义了你这个项目在编译时所使用的$CLASSPATH,包括了在build path中加入的jar包,也包括run as config中的classpath中加入的内容,所以直接修改这个文件也可以!

3.2 .project

.project是项目文件,这些配置主要是描述工程的基本信息,如工程名<name></name>;工程注释描述<comment></comment>;运行时需要的额外Eclipse插件<natures></natures>;及其具体加载方式信息<buildSpec></buildSpec>。如果你在开发过程中向工程里面加入了很多额外的插件,则必然会导致你的Eclipse启动速度变慢。

3.3 .settings

里面存放各种插件的配置文件。

4,eclipse常见问题

3.1,Could not find the main class

报错如下:

Exception in thread "main" java.lang.NoClassDefFoundError: com/xxx/lineage/app/ToolTestCould not find the main class: com.aliyun.lineage.app.ToolTest. Program will exit.
原因:
一般情况是包含该main函数的java文件对应的编译后的.class文件找不到,这种缺失可能是你主动删除了bin/目录等原因造成的,但是eclipse又没有检测到进而重新编译,所以需要手动再编译。
解决方法:
去掉自动编译,重新手动编译;或者去掉一个Jar包,再加入一个Jar包,eclipse会自动再次编译。

3.2,红色感叹号

红色感叹号:在项目上右击Build Path -> Configure Build Path.(或Propertise->Java Build Path) 在Java Build Path中Libraries,检查Build Path中的各个依赖jar及library是否有warning的标志,红色叉号的包为路径错误的包。 处理好后返回刷新工程即可,这个问题一般是导入别人的项目或之前的一些JAR包移动了它的存储位置。 

3.3,eclipse的classpath

java.exe本身的一个参数-cp(classpath)设置classpath,eclipse默认的classpath包括三个部分: 
1、jdk的bin目录; 
2、工程引用的所有其他jar包路径 
3、工程根路径(对,不是bin路径) 

3.4,代码中出现删除线


Eclipse代码出现删除线原因:这种方法或者类是早期的,后期有更好的方法来替代它,这个意思是不建议使用这个方法或者类。但是还可以使用,这应该是为了前后兼容才这么做的。在语义上最好不使用这个方法。

【Eclipse】Eclipse常用操作

http://www.cnblogs.com/xhzi/archive/2011/03/08/1977068.html







原创粉丝点击