windows下使用批处理脚本实现多个版本的JDK切换

我们平时在window上做开发的时候,可能需要同时开发两个甚至多个项目,有时不同的项目对JDK的版本要求有区别,这时候我们可能会在一台电脑上安装多个版本的JDK

当我们想要切换使用的JDK版本时,我们可以有两种做法:
  1.手动去修改JAVA_HOME环境变量,将变量的值指向对应的JDK版本的安装目录即可.
  2.通过编写批处理脚本来根据选择的JDK版本动态修改JAVA_HOME环境变量的值,这是一种偷懒的做法,这种做法需要一个RefreshEnv.exe辅助软件来刷新环境变量的值



- 阅读剩余部分 -

使用poi解析Excel

解析xls

package xls;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class XlsMain {

    public static void main(String[] args) throws IOException {
        XlsMain xlsMain = new XlsMain();

        xlsMain.readXls();
    }

    private void readXls() throws IOException {
        InputStream is = new FileInputStream("D:\\excel\\xls_test2.xls");
        HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);

        // 循环工作表Sheet
        for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
            HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
            if (hssfSheet == null) {
                continue;
            }

            // 循环行Row 
            for (int rowNum = 0; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
                HSSFRow hssfRow = hssfSheet.getRow(rowNum);
                if (hssfRow == null) {
                    continue;
                }

                // 循环列Cell  
                for (int cellNum = 0; cellNum <= hssfRow.getLastCellNum(); cellNum++) {
                    HSSFCell hssfCell = hssfRow.getCell(cellNum);
                    if (hssfCell == null) {
                        continue;
                    }

                    System.out.print("    " + getValue(hssfCell));
                }
                System.out.println();
            }
        }
    }

    @SuppressWarnings("static-access")
    private String getValue(HSSFCell hssfCell) {
        if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
            return String.valueOf(hssfCell.getBooleanCellValue());
        } else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
            return String.valueOf(hssfCell.getNumericCellValue());
        } else {
            return String.valueOf(hssfCell.getStringCellValue());
        }
    }

}

- 阅读剩余部分 -

Gson用户指南

1、Overview(概览)

Gson是一个Java类库,用于将Java对象转换为它们所代表的JSON数据,也可以用于将一个JSON字符串转换为对应的Java对象。Gson是一个开源项目,托管于http://code.google.com/p/google-gson

Gson可以用于任意的Java对象,包括已经存在但你没有对应源代码的对象。

2、Goals for Gson(Gson的目标)

* 提供像toString()和构造方法(工厂方法)一样简单使用的机制来将Java对象转换为JSON或者反过来将JSON转换为Java对象。

* 允许将已经存在并且不可修改的对象转换JSON,或者反过来。

* 允许为对象自定义映射关系。

* 支持任意复杂的对象。

* 生成紧凑又易读的JSON输出。

- 阅读剩余部分 -

一个例子让你了解Java反射机制

Java反射机制:

通俗地说,反射机制就是可以把一个类,类的成员(函数,属性),当成一个对象来操作,希望读者能理解,也就是说,类,类的成员,我们在运行的时候还可以动态地去操作他们.

理论的东东太多也没用,下面我们看看实践 Demo ~

- 阅读剩余部分 -

SPRING 教程 01

简介

  • Spring是一个基于IOC和AOP的结构J2EE系统的框架

  • IOC 反转控制 是Spring的基础,Inversion Of Control

  • 简单说就是创建对象由以前的程序员自己new 构造方法来调用,变成了交由Spring创建对象

  • DI 依赖注入 Dependency Inject. 简单地说就是拿到的对象的属性,已经被注入好相关值了,直接使用即可

目录

  • 步骤 1 : 原理图

  • 步骤 2 : 创建项目spring

  • 步骤 3 : pojo

  • 步骤 4 : applicationContext.xml

  • 步骤 5 : TestSpring

文件下载

正文

步骤 1 : 原理图

  • 以获取对象的方式来进行比较

    • 传统的方式:
      通过new 关键字主动创建一个对象

    • IOC方式
      对象的生命周期由Spring来管理,直接从Spring那里去获取一个对象。 IOC是反转控制 (Inversion Of Control)的缩写,就像控制权从本来在自己手里,交给了Spring。

    获取对象的不同方式



- 阅读剩余部分 -