刘政道 - 应用程序框架

《31天学会CRM项目开发(C#编程入门及项目实战)》作者,IT经理,程序员
  博客园  :: 新随笔  :: 联系 :: 管理

Windows和Linux下Java程序开发入门

Posted on 2011-01-21 15:00  刘政道  阅读(1269)  评论(0编辑  收藏  举报

这里,我们探讨的WindowsLinux环境下如果使用Java开发C/S结构的程序(命令行模式)。

 

案例背景,采购员希望每天定时收到未来三天内到货提醒。我提示采购员可以在ERP系统中查询到,但是他们说麻烦。如果登陆一下系统也闲麻烦的话,估计做这个提醒也不会起什么作用。既然业务部门提出需求,我们就得响应啊。ERP系统在Linux服务器上,使用的是Oracle数据库,通过一句sql很容易查询到未来三天的到货物品明细记录。

 

开始动手吧。

 

先安装JDK,并配置好环境变量JAVA_HOMECLASSPATH,在Windows命令提示符或Linux命令行中输入java –version,能够成功打印java版本信息就说明安装好了。如果你不知道如何配置环境变量,请参照环境变量配置章节。

Windows环境下安装JDK

安装文件jdk-6u3-windows-i586-p.exe,自动安装后,配置环境变量

JAVA_HOME=C:\Program Files\Java\jdk1.6.0_03

CLASSPATH= C:\Program Files\Java\jdk1.6.0_03\lib\dt.jar; C:\Program Files\Java\jdk1.6.0_03\lib\ tools.jar;

 

 

 

Linux环境下安装JDK

安装文件jdk-6u16-linux-i586.rpm

通过命令 rpm –ivh jdk-6u16-linux-i586.rpm

然后在/etc/profile中配置环境变量

JAVA_HOME=/usr/java/jdk1.6.0_16;export JAVA_HOME

PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/opt/ErpQuery/bin/:/opt/ErpQuery/lib/ojdbc14.jar;export CLASSPATH

 

 

安装Eclips Java Develpoer版本。

 

Windows环境

使用Eclips创建一个Java项目ErpQuery

配置lib路径,将ojdbc14.jar添加到项目。

新建ErpQueryMain.java文件

内容如下:

 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

 

public class ErpQueryMain {

public static void main(String[] args)

         {

                  System.out.println(“Hello World!”);//还是传统些,打印一下Hello World!

try

                   {

                            String DB_URL = "jdbc:oracle:thin:@192.168.0.1:1521:erp";

                            String DB_DRIVER = "oracle.jdbc.driver.OracleDriver";

                            String DB_USERNAME = "username";

                            String DB_PASSWORD = "password";

                            Connection conn = null;

                            Class.forName(DB_DRIVER);

                            //建立连接

                            conn = DriverManager.getConnection(DB_URL,DB_USERNAME,DB_PASSWORD);                                  Statement s = conn.createStatement();

                            String sql = "select name from dual";

                            ResultSet rs = s.executeQuery(sql);

                            System.out.println("采购员");

                            while(rs.next())

                            {

                                     System.out.println(rs.getString(1));//打印rs数据集中第一列

                            }

                            s.close();

//关闭数据库链接

                            if(!conn.isClosed()){

                                      conn.close();

                            }

                   }

                   catch(Exception ex){ex.printStackTrace();}

         }

}

Eclips中按Ctrl+SErpQueryMain.java会自动编译成ErpQueryMain.class,可以在bin目录下找到。

 

打开命令提示符,设置好环境变量CLASSPATH

E:\ErpQuery\bin>

E:\ErpQuery\bin\>set CLASSPATH = .%CLASSPATH%;E:\ErpQuery\bin\;E:\ErpQuery\lib\ojdbc14.jar;

E:\ErpQuery\bin\>echo %CLASSPATH%

E:\ErpQuery\bin\>java ErpQueryMain

 

我通常的做法是创建一个start.bat批处理文件

set path=C:\Program Files\Java\jdk1.6.0_03\bin;

set CLASSPATH = .%CLASSPATH%;E:\ErpQuery\bin\;E:\ErpQuery\lib\ojdbc14.jar;

java ErpQueryMain

使用start.bat总会有个黑色的命令窗口,如何把他隐藏呢?

办法总是有的,

创建一个start.vbs文件

Set ws = CreateObject("Wscript.Shell")

ws.run "cmd /c start.bat",vbhide

本案例中,不合适,我们只有通过控制台才能看到输出。

 

 

Linux环境

我们并不打算在Linux上进行Java程序开发,只需要知道怎么部署就可以了。

ErpQuery文件夹上传到Linux上,例如/opt/ErpQuery

 

配置环境变量CLASSAPTH

[root@localhost opt]#CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/opt/ErpQuery/bin/:/opt/ ErpQuery /lib/ojdbc14.jar;

[root@localhost opt]#export CLASSPATH

[root@localhost opt]#echo $CLASSPATH

[root@localhost opt]#:/usr/java/jdk1.6.0_16/lib/dt.jar:/usr/java/jdk1.6.0_16/lib/tools.jar:/opt/ErpQuery/bin/:/opt/ErpQuery/lib/ojdbc14.jar

创建start.sh文件

[root@localhost opt]#cd ErpQuery

[root@localhost ErpQuery]#cd bin

[root@localhost bin]#vi start.sh

#!/bin/sh

java ErpQueryMain > data.log

#iconv --from-code UTF-8 --to-code GBK -c data.log > data1.log

[root@localhost bin]# sh start.sh

这就可以了

iconv --from-code UTF-8 --to-code GBK -c data.log > data1.log这一句很重要,默认情况下Linux产生的文件是UTF-8格式的,如果要直接看的话,将显示是乱码,但可以通过iconv命令转换文本文件编码格式。

 

如果你要在cron中执行java程序,那么还需要做一些设置工作。CronLinux下的一个定时器,通过cron执行bash脚本时,并不会加载环境变量,所以要手动配置上。

#这一句很关键,如果不是正确的字符编码的话,通过java程序输出的中文很可能是乱码。

export LANG=zh_CN.GB2312

#定义临时环境变量

JAVA_HOME=/usr/java/jdk1.6.0_16

CLASSPATH=/usr/java/jdk1.6.0_16/lib/dt.jar:/usr/java/jdk1.6.0_16/lib/tools.jar:/opt/ErpQuery/bin/:/opt/ ErpQuery /lib/ojdbc14.jar

#注意参数-classpath要指定

$JAVA_HOME/bin/java -classpath $CLASSPATH ErpQueryMain