Java随手笔记8之包、环境变量和访问控制及maven profile实现多环境打包

一、java中的包

  Java利用包来组织代码,一来使大型项目的代码结构清晰,二来包是一个命名空间的划分,即不同包中可以有相同名字的类,只需在在类名前加上包名即可区分它们。

  Package xxx 必须位于java文件除了注释以外的第一行,用来指明当前文件中的类属于哪一个包,如果没有package语句,则该文件中的类都属于默认包。

  Import xxx用来在当前java文件中导入不属于当前包中的类,从而可以在当前文件中使用它们。

二、java中的环境变量

1.path

  环境变量其实就是一组变量(废话),它的作用是给系统和应用程序提供参数。例如:path,它告诉系统和应用程序一些系统必备的程序的存储位置,比如你要运行ipconfig命令,系统去哪里找它呢,就是通过path变量,把它所存储的位置挨个找一遍,直到找到为止。

  在java中,当我们要运行java程序,在控制台输入java xxx时,java这个应用程序(exe文件)到哪里找呢?系统就得通过path,这样就得把包含java这个应用程序的目录拷贝到path环境变量中,这样以后,再运行java xxx 就不会出现“‘java'不是内部或外部命令,也不是可运行的程序或批处理文件。”了。

2.classpath

  说完path,再来说说classpath,解决了java这个命令的问题,还有javac这个命令的问题,这里就牵扯到java中的包机制了。

  Java程序是由一个一个类构成的,类之间可以相互调用,还有一些java语言已经定义好的类,那么当程序要用到这些类的时候,去哪里找他们呢,这就需要classpath这个环境变量来指点迷津了。

  总结:classpath指明了类查找路径,如果类没有被打包,那就需要将其所在目录添加到classpath中,如果类被打包为JAR文件,则需要将JAR文件的实际名称写清楚。

Classpath一般设置为“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;”

  其中.代表当前目录,%JAVA_HOME%代表java jdk的路径。Dt.jar中主要是swing包中的各种控件类。Tools.jar中是各种工具类。

  当编译器碰到import语句时,就开始在CLASSPATH所包含的目录中查找。

  (参考:http://www.linuxidc.com/Linux/2012-01/52713.htm

3.JAVA_HOME

  指明jdk的路径

三、访问权限控制

1.类成员的访问控制

访问控制符:public/protected/包访问权限(无关键字即默认)/private


类本身


同包中的子类


不同包中的子类


同包中的非子类


不同包中的非子类


总之


public


可以


可以


可以


可以


可以


都可以


private


可以


不可以


不可以


不可以


不可以


仅自身可见


default


可以


可以


不可以


可以


不可以


仅同包可见


protected


可以


可以


可以


可以


不可以


子类或者同包可见

2.类的访问控制权限

类只有两种访问控制权限:默认(即包访问控制权限)和public

下面还有点时间,接着给大家介绍maven profile实现多环境打包

项目开发需要有多个环境,一般为开发,测试,预发,正式4个环境,通过maven可以实现按不同环境进行打包部署,命令为:
mvn package -P dev

其中“dev“为环境的变量id, 可以自己定义, 我定义的名称为:dev,qa,pre,prod , 具体在pom.xml中的配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  ......
  <profiles>
    <profile>
      <id>dev</id>
      <properties>
        <env>dev</env>
      </properties>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <profile>
      <id>qa</id>
      <properties>
        <env>qa</env>
      </properties>
    </profile>
    <profile>
      <id>pre</id>
      <properties>
        <env>pre</env>
      </properties>
    </profile>
    <profile>
      <id>prod</id>
      <properties>
        <env>prod</env>
      </properties>
    </profile>
  </profiles>
......
  <build>
    <filters>
      <filter>config/${env}.properties</filter>
    </filters>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
    ......
  </build>
</project> 

1.profiles定义了各个环境的变量id
2.filters中定义了变量配置文件的地址,其中地址中的环境变量就是上面profile中定义的值
3.resources中是定义哪些目录下的文件会被配置文件中定义的变量替换,一般我们会把项目的配置文件放在src/main/resources下,像db,bean等,里面用到的变量在打包时就会根据filter中的变量配置替换成固定值

(0)

相关推荐

  • 使用maven+eclipse搭建struts2开发环境

    一.web分层结构简介1.web[细]粒度分层结构: 按细粒度分层可以分为以下6种: 1).表现层:html/css/js/jsp 2).控制层:servlet 3).实体层:javabean 4).业务逻辑层:javabean 5).持久层:jdbc/c3p0/dbutils 6).数据层:mysql/oracle 2.web[粗]粒度分层结构(重点): 按粗粒度可以分为3层: 1).由上面的1).2).3)组成mvc 什么是MVC? m即为model(模型层),v为view(表现层),c为c

  • 使用Maven搭建Hadoop开发环境

    关于Maven的使用就不再啰嗦了,网上很多,并且这么多年变化也不大,这里仅介绍怎么搭建Hadoop的开发环境. 1. 首先创建工程 复制代码 代码如下: mvn archetype:generate -DgroupId=my.hadoopstudy -DartifactId=hadoopstudy -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 2. 然后在pom.xml文件里添加hadoop的依赖

  • java selenium教程环境搭建基于Maven

    现在Java的大部分项目都是基于Maven,  在Maven项目中使用Selenium2. 非常简单. 首先你需要配置好Maven的环境 可以参考Maven安装以及eclipse配置maven的方法: http://www.jb51.net/softjc/416034.html 官方的文档 http://docs.seleniumhq.org/download/maven.jsp 新建一个Maven的Project 添加如下到你的POM.XML, 就可以了 <dependency> <g

  • window下安装和配置maven环境

    本文实例为大家分享了安装和配置maven环境的具体步骤,供大家参考,具体内容如下 下载maven: 1.进入官网下载:http://maven.apache.org/download.cgi 注意事项:(截至目前2015年12月1日)最新版本的Maven3.3.9必须在JDK1.7版本以上运行. 2.下载后复制到我们自己心仪的目录解压即可. 配置maven的环境变量: 1.计算机-鼠标右键选择属性-高级系统设置-环境变量,然后新建一个变量名为M2_HOME,变量值为maven安装目录,确定保存.

  • JavaEE开发基于Eclipse的环境搭建以及Maven Web App的创建

    本篇博客就完整的来聊一下如何在Eclipse中创建的Maven Project.本篇博客是JavaEE开发的开篇,也是基础.本篇博客的内容干货还是比较多的,而且比较实用,并且都是采用目前最新版本的工具来配置的环境.下方内容主要包括了JDK1.8的安装.JavaEE版本的Eclipse的安装.Maven的安装.Tomcat 9.0的配置.Eclipse上的M2Eclipse插件以及STS插件的安装.当然本篇博客是在Mac OS X下完成的.当然本篇所涉及的工具都有Windows版的,而且Eclip

  • Maven2环境安装与准备工作详解

    Maven2环境安装与准备,供大家参考,具体内容如下 1.在Ubuntu11.04上安装Maven2 安装JDK,sudo apt-get install openjdk-6-jdk 安装Maven2,sudo apt-get install maven2 上面是使用apt安装,当然也可以下载到机器上文件安装,注意配置环境变量. 检测是否安装好了,可以使用mvn -v查看,结果如下时就可以了: 可以通过whereis命令查看maven2的配置信息位置和HOME位置,如下所示 2.使用Nexus创

  • java 配置MyEclipse Maven环境具体实现步骤

     java 配置MyEclipse Maven环境 虽然我的大部分项目已经迁到Idea上去了,但是在写部分小的测试程序的时候还是习惯性的会点开MyEclipse.之前使用第三方库的时候 我会习惯的下载jar包,然后build path导入,但是在idea中貌似通过配置maven依赖更方便,于是我在MyEclipse中也想使用pom.xml来导入依赖,在尝试的过程中遇到了些问题,我这里是记录解决这些问题的方法. 环境 Myeclipse for spring  2014 JRE 8 Maven 3

  • Java随手笔记8之包、环境变量和访问控制及maven profile实现多环境打包

    一.java中的包 Java利用包来组织代码,一来使大型项目的代码结构清晰,二来包是一个命名空间的划分,即不同包中可以有相同名字的类,只需在在类名前加上包名即可区分它们. Package xxx 必须位于java文件除了注释以外的第一行,用来指明当前文件中的类属于哪一个包,如果没有package语句,则该文件中的类都属于默认包. Import xxx用来在当前java文件中导入不属于当前包中的类,从而可以在当前文件中使用它们. 二.java中的环境变量 1.path 环境变量其实就是一组变量(废

  • Maven profile实现不同环境的配置管理实践

    前言 目前,企业项目的开发过程中,往往会使用配置文件来做一些配置项来实现项目部署的灵活性,避免硬编码的方式在环境变化时需要对代码进行重新编译.但是往往在项目周期中存在着各种环境:如开发环境.测试环境以及生产环境等,而且在不同的运行环境中可能牵扯到大量的配置项变化.如果在不同的部署环境中切换,对配置文件的管理往往容易让程序员感觉非常的混乱. 为了避免这种换乱,研发过程中也有比较多的手段进行.比如,有公司就采用VPN的虚拟网络环境,让测试环境.生产环境的网络一致,让程序员在不同环境中对版本进行发布时

  • maven profile实现多环境配置的示例

    环境:eclipse + spring mvc + maven 1.直接看图,把数据库的配置单独拿出来放在了resources_env目录下,三个不同环境参数不同, 2,在pom文件中添加配置 <profiles> <profile> <!-- 开发环境 --> <id>dev</id> <properties> <env>dev</env> </properties> <activation

  • java三个环境变量配置简单教程

    在java 中需要设置三个环境变量(1.5之后不用再设置classpath了,但个人强烈建议继续设置以保证向下兼用问题) JDK安装完成之后我们来设置环境变量:右击"我的电脑",选择"属性",选择"高级"标签,进入环境变量设置,分别设置如下三个环境变量: (1)配置path变量: 为什么要配置path变量? 因为电脑系统将根据该变量的值找到java编程中需要的一些程序,比如javac.exe.java.exe.javah.exe等等,其中java

  • Linux CentOS 7.0中java安装与配置环境变量的步骤详解

    一.前言: CentOS7.0虽然自带JDK1.7和1.8,运行"java -version"命令也可以看到版本信息,但是jdk的安装环境不全,比如缺少tool.jar和dt.jar等,这就导致"javac"等这样的命令即便配置了环境变量也不能用,所以要重新安装jdk,并且配置环境变量,并解决"javac"命令不可用的问题. 下面话不多说了,来随着小编一起看看详细的介绍吧. 二.下载安装JDK 1.CentOS下,首先让当前用户获取root权限,

  • Mac Book中Java环境变量设置的方法

    Mac 启动加载文件位置(可设置环境变量) -------------------------------------------------------  (1)首先要知道你使用的Mac OS X是什么样的Shell,使用命令 echo $SHELL 如果输出的是:csh或者是tcsh,那么你用的就是C Shell. 如果输出的是:bash,sh,zsh,那么你的用的可能就是Bourne Shell的一个变种. Mac OS X 10.2之前默认的是C Shell. Mac OS X 10.3

  • 详解Java获取环境变量及系统属性的方法

    环境变量这个概念不陌生, 就是操作系统的环境变量. 系统变量就是java本身维护的变量. 通过 System.getProperty 的方式获取. 对于不同的操作系统来说, 环境变量的处理可能会有一些不统一的地方, 比如说: 不区分大小写 等等. Java 获取环境变量 Java 获取环境变量的方式很简单: System.getEnv()  得到所有的环境变量 System.getEnv(key) 得到某个环境变量的值 Map map = System.getenv(); Iterator it

  • Java配置JDK开发环境及环境变量

    [正文] 1.安装JDK开发环境 下载网站:http://www.oracle.com/ 开始安装JDK: 修改安装目录如下: 确定之后,单击"下一步". 注:当提示安装JRE时,可以选择不要安装. 2.配置环境变量: 对于Java程序开发而言,主要会使用JDK的两个命令:javac.exe.java.exe.路径:C:\Java\jdk 1.7.0 _09\bin.但是这些命令由于不属于windows自己的命令,所以要想使用,就需要进行路径配置. 单击"计算机-属性-高级系

  • 详解 MAC/Linux Vi配置环境变量及Java环境变量配置

    详解 MAC/Linux Vi配置环境变量及Java环境变量配置 vi基础 1.vi的基本概念 (1)基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 1) 命令行模式command mode) 控制屏幕光标的移动,字符.字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode. 2) 插入模式(Insert mode) 只有在Ins

  • Java学习笔记之Maven篇

    一.maven能做什么? [本质]:将原材料(各种Java本身的类,不包括jar包)生产成为可运行的工程项目. Maven - 自动化构建工具,英文单词是专家内行的意思 1.方便管理jar包,jar包冲突? 2.打包web项目(节省jar包空间) 1.1 两大应用 [依赖管理]maven的jar包放在jar包仓库,maven只存储jar包的坐标.(代码重用思想) [一键构建]编译.测试.运行.打包.安装.部署 操作一体化 [POM:Project Object Model 工程对象模型 [pom

随机推荐