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- ...
随机推荐
- js在一定时间内跳转页面及各种页面刷新
1.js 代码: <SCRIPT LANGUAGE="JavaScript"> var time = 5; //时间,秒 var timelong = 0; funct ...
- erhai系统使用_web
使用前说明1.安装mysql数据库,安装数据库管理器EMS(SQL Manager Lite for MySQL),将数据库导入数据库管理器: 注意对配置文件my.ini的修改.2.启动resin W ...
- Android listview自定义分割线宽度
代码很简单防止以后忘记 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:an ...
- Roofline Model与深度学习模型的性能分析
原文链接: https://zhuanlan.zhihu.com/p/34204282 最近在不同的计算平台上验证几种经典深度学习模型的训练和预测性能时,经常遇到模型的实际测试性能表现和自己计算出的复 ...
- [QT]加快qt编译:设置默认多核编译qt
使用环境:win7 + QT Creator 4.2.1 + QT5.8 + MinGW5.3.0 32bit 设置默认多核编译qt 来源:http://stackoverflow.com/ques ...
- MyBatis_Study_001(入门)
1.话不多说,直接搞起; (源码地址https://github.com/carryLess/mbtsstd-001) 2.去官网https://github.com/mybatis下载文件 下载完成 ...
- web程序2
.
- SQL Server中动态列转行
http://www.cnblogs.com/gaizai/p/3753296.html 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现 ...
- 谜一样的jquery之$选择器
jquery是一个强大的js类库,提供了很多便利的操作方法并兼容不同的浏览器,一旦使用便欲罢不能,根本停不下来,今天我们就来解读一下这个神秘的jquery源代码. 前几天思考再三,自己尝试着封装了一下 ...
- 根据现有表操作基于active record的model
指南上都是直接生成mode,然后db migrate来生成数据库,在现实场景中,很可能是反过来的 例如 测试表app_versions rails里面,建立model class AppVersion ...