Java项目的结构
-------siwuxie095
以 Hello World 为例
这个工程用一个文件夹表示,被放置在左侧的资源管理面板 Package Explorer 中
展开后:
可以看到一个
src 文件夹,用于存放项目的源代码
〔
src 即 source 也即 source code 〕
而
JRE System Library 即当前工程所需要的运行时,它的版本是
在创建这个工程时所选择的JRE版本,这里是 jre(被我个人命名)
展开
JRE System Library:
下面有很多
jar 格式的包,即系统的运行时提供给程序的运行环境和开放的 API
展开
src:
可以看到
default package,即默认包,下面是类
在正规的开发环境中,"使用默认包 default package,在下面创建类"
的做法是非常不可取的
规范的做法:在默认包下创建它的子包〔实际上就是替代了默认包〕
(先删掉上面的
Test.java,在 default package 上:右键->New->Package)
包名的命名规则:
如:网站名为:www.siwuxie095.com,则当前的包名规则是反过来的
即:com.siwuxie095,第一个代表公司性质 commercial 商业性质;
第二个是公司名称;
接下来是项目名称,如:hello,即 com.siwuxie095.hello
接下来继续添加,这时的包名就是按照功能来划分的了,如:这
里创建的第一个包是用来运行和开启程序的,可以命名为main,
即
com.siwuxie095.hello.main
Finish 后,一览:
默认包
default package 就变成了 com.siwuxie095.hello.main
同时自动创建了一个类
一般情况下,一个应用程序应该遵循MVC的结构规则
〔
M 即 Model 模型;V 即 View 视图、界面;C 即 Control 控制 〕
显然,这里的
main 包存放的就是用于控制的代码
可以在 src 上,右键->New->Package,继续创建包
视图:com.siwuxie095.hello.view
模型:com.siwuxie095.hello.model
三个基本包创建完成,如果项目非常复杂,程序的包结构也会非常复杂
包创建完成后,首先要创建程序的主要入口,即 主方法,
在
com.siwuxie095.hello.main 上,右键->New->Class
Name:Main,勾选上 public static void main(String[] args)
接下来,如果要为项目创建一个用于储存模型的类,就要放到
com.siwuxie095.hello.model 包中,如:在游戏项目中,游戏
地图、人物属性等都属于数据模型,应该放到此包中
最后,如果项目还需要添加视图
和
用户界面,就要放到
com.siwuxie095.hello.view 包中,存放显示视图的类
创建完成一览:package-info.java 可以删除
包和类都创建完成后,它们在硬盘中储存情况:
在资源管理器中找到
Eclipse 的工作空间 workspace,
打开项目
Hello World
src 下的 com.siwuxie095.hello.main,每一个点都代表一级文件结构
因为在工程中,main、model、view 这三个包的前缀都一样,
即
截止到
hello,都是储存在同一文件结构中,到了它们本身就
分开成
三个
文件夹存储
返回到项目 Hello World 的目录下,可以看到一个 bin 文件夹,
这个
bin 路径在 Eclipse 的工程管理面板(或 资源管理面板)中
是不可见的,bin 是用来存放当前 Eclipse 实时编译的 .class 文件,
它的文件夹结构和
src 完全相同
(.class 文件 即 Java的二进制文件)
当然,如果需要,也可以资源管理器中直接创建包的结构
如:在
src 下的 hello 目录下,创建 network 文件夹,这样就创建了一个
新的
network 包
不过在 Eclipse 的工程中还没有反应过来,需要手动刷新
点击工程项目名
Hello World,按 F5 刷新,或 右键->Refresh 即可
还可以为当前包创建子包,如:在
view 下创建文件夹 img,
用于存放图像,仍需到
Eclipse 中点击当前的工程,手动刷新,
才能显示
在工程文件夹目录下还可以创建其他文件夹,最常出现的是
一个名为
lib 的文件夹,可以存放一些第三方的库,直接复制
粘贴过来即可,如:复制粘贴一个
gson-2.8.0.jar
回到
Eclipse 中,手动刷新一下,显然,lib 和 src 文件夹是同一级的
lib 下的 gson-2.8.0.jar 只是出现在了工作的环境当中,并没有被工程所引用
这时选中
gson-2.8.0.jar,右键->Build Path->Add to Build Path,
将其添加到
Build Path,会出现一个新的结构:Referenced Libraries,
即
被引用的库,当一个jar包出现在这里,就说明它已经被当前工程所引用
且可以展开这个包,观察其目录结构,显然,其包名是符合命名规范的
这样,你就可以在工程中引用此包中的内容
如:com.google.gson 中包含了 JsonObject.class
就可以直接引用:
运行一览:输出一个空大括号,即代表一个空的Json数据
【made by siwuxie095】
Java项目的结构的更多相关文章
- (一)JAVA项目(非web项目)部署到windows服务器运行
[转]http://blog.csdn.net/tracy19880727/article/details/11205063 一般服务器运行的几乎都是web项目,今天遇到一个问题,把写好的Java项目 ...
- eclipse集成maven3后,创建java项目详细图解
1.创建一个Java项目 1)File--->New--->Other--->Maven--->Maven Projet 2)选择maven-archetype-quickst ...
- Eclipse JAVA项目的 目录结构 和 导入
说明:本文所有测试以java工程为例: 1. Eclipse下的java工程目录 eclipse的基本工程目录叫做workspace,每个运行时的eclipse实例只能对应一个workspace,也就 ...
- idea中的java web项目(添加jar包介绍)和java maven web项目目录结构
java web项目 web项目下web根目录名称是可以更改的 idea中新建java web项目,默认src为Sources Root,当然也可以手动改,在Sources Root下右键只能新建Pa ...
- 将 java 项目打包成可运行的 jar 包(main 函数带参数),并上传到 linux 服务器上运行
一.概述 java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的. 对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打 ...
- 像Maven一样构建java项目的目录,更好的管理java工程的源码
都知道maven具有管理Java或者Javaweb的功能.我个人尤其看中的是其代码层次的分离.不同的代码在不同的文件夹下.这是在eclipse新建一个普通的工程无法实现的.而如果用maven实现有时候 ...
- 用Ant实现Java项目的自动构建和部署
原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml 本文请勿转载! Ant是一个Apache基金会下的跨平台的构 ...
- 【dubbo】dubbo项目基本结构及provider构建
dubbo项目基本结构如下,分别部署于不同服务器: 1.provider(接口API 实现) 2.consumer(web) 3.zookeeper 4.DB provider构建 1.api构建 i ...
- 使用maven编译Java项目 http://www.tuicool.com/articles/YfIfIrq
使用maven编译Java项目 时间 2014-07-17 17:42:37 Way Lau's Blog 原文 http://www.waylau.com/build-java-project- ...
随机推荐
- New Concept English Two 17 43
$课文41 你把那个叫帽子吗? 422. 'Do you call that a hat?' I said to my wife. “你把那个叫帽子吗?”我对妻子说. 423. 'You needn ...
- how to play
陷入难以言说的深深的绝望 无力,无助,暗无天日,看不到光明,看不到未来,不知道何去何从 但我依然坚信这道坎一定可以过去,黎明前的夜总是黑暗的,属于我的光明终将来临 沼泽中的旅行者,只要还没死掉,就还没 ...
- python虚拟环境--virtualenv和virtualenvwrapper
python虚拟环境--virtualenv和virtualenvwrapper http://www.cnblogs.com/technologylife/p/6635631.html https: ...
- Ambiguous reference to member 'dataTask(with:completionHandle:)'错误
在研究IOS的网络请求过程中,因为NSURLConnection已经过时,需要引用到URLSession var url:NSURL=NSURL(string: "http://3g.163 ...
- python的继承顺序
python的继承顺序 python 创建类时分为新式类和旧式类 class A: # 经典类 def __init__(self): pass # 新类,可以在这里加 __metaclass__ = ...
- vue-cli 本地开发mock数据使用方法
vue-cli 中可以通过配置 proxyTable 解决开发环境的跨域问题,具体可以参考这篇文章: Vue-cli proxyTable 解决开发环境的跨域问题 如果后端接口尚未开发完成,前端开发一 ...
- 使用IAR编译STM8S 怎样生产烧录文件
IAR编译后能够生成的烧录文件格式有4中,例如以下 第一种是Motorola,其生成文件和STVD生成烧录文件.s19格式一样的,即能够通用 另外一种是16进制,keil等等常都用到的. 第三种是 ...
- C语言使用pthread多线程编程(windows系统)一
运行之前需要做一些配置: 1.下载PTHREAD的WINDOWS开发包 pthreads-w32-2-4-0-release.exe(任何一个版本均可) http://sourceware.or ...
- winform 勾选可以改变框控件
public partial class UCCheck : UserControl { [Browsable(true), Category("修改属性"), Descripti ...
- C#:进程、线程、应用程序域(AppDomain)与上下文分析
进程 进程是操作系统用于隔离众多正在运行的应用程序的机制.在.Net之前,每一个应用程序被加载到单独的进程中,并为该进程指定私有的虚拟内存.进程不能直接访问物理内存,操作系统通过其它的处理把这 ...