JAVA Start

 

开始看JAVA,被一堆名词给搞糊涂了,现整理一下,关于J2SE,J2EE,J2ME,JRE,JDK,J2SDK等的概念及JDK的安装。

 

1.J2SE,J2EE,J2ME

java有三种开发平台:J2SE J2ME J2EE

J2SE:是标准平台,用于桌面应用程序的开发。

J2ME:是微型平台,用于嵌入式软件开发,如果要开发小中间件和无线应用程序,则要使用J2ME.

J2EE:是企业版平台,基于B/S结构的企业级软件开发,如果要生成服务器方程序,小服务和其他服务器方程序,则要取得J2EE.

2.JRE(Java Runtime Environment)

JREJAVA运行环境,jdk中包括了它,但是对于不需要开发只是运行的用户是可以只单独安装jre的,所以sun提供了jre的下载。

3.JDK (Java Development Kit)
JDK:java development kit,java开发包.里面是java类库和java的语言规范,同时java语言的任何改进都应当加到其中,作为后续版本发布. jdk本身并不是一个像jbuilder这样的开发软件,它不提供具体的开发软件,它提供的是无论你用何种开发软件写java程序都必须用到的类库和java语言规范.没有jdk,你的java程序根本就不能用.

JDK 是整个Java的核心,包括了Java运行环境(JRE-Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握 JDK是学好Java的第一步。最主流的JDKSun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDKBEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBMJDK包含的JVMJava Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。

jdkjava devolop kit -- java开发包
j2sdk
java 2 software devolop kit -- java2软件开发包

4.J2SDK

J2SDK包含了Java Development kit(JDK)Java Runtime Environment(JRE)Java Plug-in。原先sunJAVA软件开发工具包是JDK,现在就称为J2SDk了。  sunjava网站上就单独提供J2SDKJRE各种版本的下载,J2SDk是提供给开发JAVA程序所用,应用程序用户是不需要开发工具的。而JRE顾名思义是JAVA程序要运行所需要的环境,所谓跨平台就是要各种平台都有一个中间代理,那就是JRE。一般采用JAVA技术开发出的软件都得带这个,所以sun就单独提供了JRE安装文件,以供JAVA应用程序发布时所用。

JRE
plug-in:JRE包含了java plug-in

5.JAVA 2

我们现在用的javajava2 ,这是根据JDK的版本来划分的,1.2以前的叫JAVA1,而此以后的就叫JAVA2

6.关于JAVA的版本

JAVA的版本演变有人画了张表,非常清楚,来自http://soft.zdnet.com.cn/software_zone/2007/0515/392191.shtml

  原来1.5版本的JDK5.0,1.61.7JDK则是7.0

 

7.开始动手

开始生成JAVA程序时,可以从Sun公司的开发工具库入手,这个SDK是免费的。在开发工具库中,可以得到JAVA运行环境和一组程序库。

从初学者角度来看,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。JDK的另一个显著特点是随着Java J2EEJ2SE 以及J2ME)版本的升级而升级。但它的缺点也是非常明显的就是从事大规模企业级Java 应用开发非常困难,不能进行复杂的Java软件开发,也不利于团体协同开发。

Anyway,让我们行动起来,在自己的电脑上用上JAVA吧。

.下载JDK

SUN的网站上即可下到最新版本的JDKhttp://java.sun.com/javase/downloads/index.jsp

1

发现最新版本JDK 6u1,选择下载。

 

 

2

选择Accept License Agreement

 

3

有许多版本,选择适合自己的版本下载.

图中只截取了部分版本,其实还有其它几种版本。在这里我选择了Windows平台的版本, 56.06M ,下载。

 

.安装

下载文件是个exe文件,直接运行安装。

.配置

依次选择“My Computer”右键->Properties->Environment Variables打开环境变量的窗口,设置其中的三项属性,classpath,java_homePath.Path的变量是系统本来就有的,classpathjava_home需要自己加.

java_home的值就是刚才安装时的路径。

Path设置为"%java_home%/bin;%java_home%/jre/bin".

classpath的值为".;%java_home%/lib;%java_home%/lib/tools.jar"(.是必需的,它表示当前路径)

%java_home%表示引用前面指定的java_home.

 

打开“开始”->“运行”,键入"cmd",打开命令行界面。

输入java -version,出现java版本的提示,说明安装配置正确。

4

.测试

(1)用文本编辑器写一个简单的程序.

public class HelloWorld {

public static void main(String args[]) {

System.out.println("Hello World!");

}

}

著名的"Hello World"应用程序,保存为"HelloWorld.java".注意JAVA是大小写相关的。

(2)编译

打开cmd命令行界面,使用命令

javac HelloWorld.java

(3)运行

cmd下用java HelloWorld,则显示执行结果

Hello World!

 

好了,开始JAVA的历程了,据说是痛苦的,痛苦是一笔财富。

 

附:Java API文档中文版,http://gceclub.sun.com.cn/chinese_java_docs.html

 

参考文章:

http://www.chinaunix.net/jh/26/147447.html

http://soft.zdnet.com.cn/software_zone/2007/0515/392191.shtml

<think>我们分析用户提供的批处理脚本: @echo D: cd d:\erp\java start java -jar -Dfile.encoding=utf-8 erp-auth.jar ...(其他类似行) 参考引用内容: 引用[1]和[2]提到,后台启动jar包应使用`javaw`而不是`java`,因为`javaw`不会显示控制台窗口,且适合后台运行。而用户脚本中使用的是`java`,这样每个jar包都会打开一个控制台窗口。 另外,引用[1]和[2]还提到,如果需要设置UTF-8编码,除了在命令行指定`-Dfile.encoding=utf-8`外,还可以设置控制台编码(通过`chcp 65001`)。但用户脚本中没有设置控制台编码。 此外,引用[1]和[2]都建议使用批处理脚本与jar包放在同级目录,这样路径可以相对简单。用户脚本中使用了`cd d:\erp\java`切换到jar包所在目录,然后直接使用相对路径启动jar包(因为只写了jar包名,没有路径)。这是可行的,但前提是当前目录确实切换成功了。 但是,用户脚本的第一行`@echo D:`是无效的。`@echo off`才是关闭回显的常用方法,而`@echo D:`只会显示一个字母D(并且不会关闭后续命令的回显)。 因此,我们需要对脚本进行以下修改: 1. 将第一行改为`@echo off`,关闭所有命令的回显。 2. 使用`javaw`代替`java`,以实现后台无窗口运行。 3. 考虑添加`chcp 65001`来设置控制台编码为UTF-8(虽然使用`javaw`不会有控制台窗口,但设置一下也无妨,以防有些jar包会创建控制台输出)。 4. 如果需要延迟启动,可以在某些启动命令前加入`timeout`命令(但用户没有要求,且原脚本没有延迟,所以可选)。 另外,用户脚本中切换目录的命令`cd d:\erp\java`,如果这个目录存在就没有问题。但如果该目录不存在,脚本就会出错。所以确保目录存在。 修改后的脚本示例: ```batch @echo off rem 设置控制台编码为UTF-8 chcp 65001 >nul rem 切换到jar包所在目录 cd /d d:\erp\java rem 使用javaw后台启动所有jar包 start javaw -jar -Dfile.encoding=utf-8 erp-auth.jar start javaw -jar -Dfile.encoding=utf-8 erp-gateway.jar start javaw -jar -Dfile.encoding=utf-8 erp-modules-mobile.jar start javaw -jar -Dfile.encoding=utf-8 erp-modules-system.jar start javaw -jar -Dfile.encoding=utf-8 erp-modules-product.jar start javaw -jar -Dfile.encoding=utf-8 taohua-1.0-SNAPSHOT.jar start javaw -jar -Dfile.encoding=utf-8 taohua-2.0-SNAPSHOT.jar start javaw -jar -Dfile.encoding=utf-8 weigh-admin.jar exit ``` 注意: 1. `cd /d`中的`/d`参数允许切换驱动器(从D:盘)和目录。因为脚本开头可能在任意位置,所以需要这样切换。 2. `chcp 65001`设置控制台代码页为UTF-8,但我们用`>nul`隐藏了它的输出(避免显示“活动代码页: 65001”)。 3. 每个`start`命令都会启动一个独立的进程,并行运行。 但是,用户提到有8个jar包,原脚本也是8个,所以这里全部替换为`javaw`。 关于放置到启动文件夹: 1. 可以将这个批处理脚本(.bat文件)的快捷方式放到启动文件夹(用户级:shell:startup,系统级:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp)。 2. 或者使用计划任务(更可靠)。 另外,引用[2]提供了关闭所有jar包的脚本,用户可以创建对应的关闭脚本: ```batch @echo off taskkill /f /t /im javaw.exe exit ``` 注意:这个关闭脚本会关闭所有的javaw进程,包括其他Java程序。如果只想关闭这些特定的jar包,建议为每个jar包指定一个特定的进程名(在启动时使用`-Dname=xxx`),然后通过进程名来关闭。但用户脚本中没有设置进程名,所以只能全部关闭。 或者,可以为每个jar包记录进程ID,然后根据PID关闭。但批处理中获取每个进程的PID比较复杂。 所以,如果这些jar包是专用环境,没有其他javaw进程,那么关闭所有javaw是安全的。 综上所述,用户提供的脚本需要修改为使用`javaw`并调整开头部分。 另外,关于启动顺序:原脚本是顺序启动,但`start`命令会立即返回,所以实际上是并行启动。如果jar包之间有依赖关系(比如某些服务需要先启动),可能需要加入延迟(比如在部分命令之间插入`timeout /t 5`等待5秒)。 因此,回答用户的问题:原脚本不可行,因为使用`java`会弹出多个控制台窗口,且第一行命令不正确。需要修改为上述格式。 最后,生成相关问题: </think>### 批处理脚本可行性分析与优化建议 您提供的批处理脚本基本可行,但存在几个关键问题需要优化: #### 脚本问题分析 1. **窗口管理问题**: ```batch start java -jar ... ❌ ``` 使用 `java` 命令会为每个JAR包弹出独立的命令提示符窗口。建议改用 `javaw`(后台无窗口模式): ```batch start javaw -jar ... ✅ ``` 2. **编码设置不足**: 缺少控制台编码设置(仅设置了JVM编码),可能导致日志乱码: ```batch chcp 65001 >nul ✅ ``` 3. **路径切换风险**: `cd d:\erp\java` 未使用 `/d` 参数,可能导致驱动器切换失败: ```batch cd /d d:\erp\java ✅ ``` #### 优化后完整脚本 ```batch @echo off rem === 基础配置 === chcp 65001 >nul # 设置控制台UTF-8编码[^1] cd /d d:\erp\java # 安全切换目录 rem === 启动服务(无窗口后台模式)=== start javaw -jar -Dfile.encoding=utf-8 erp-auth.jar start javaw -jar -Dfile.encoding=utf-8 erp-gateway.jar start javaw -jar -Dfile.encoding=utf-8 erp-modules-mobile.jar start javaw -jar -Dfile.encoding=utf-8 erp-modules-system.jar start javaw -jar -Dfile.encoding=utf-8 erp-modules-product.jar start javaw -jar -Dfile.encoding=utf-8 taohua-1.0-SNAPSHOT.jar start javaw -jar -Dfile.encoding=utf-8 taohua-2.0-SNAPSHOT.jar start javaw -jar -Dfile.encoding=utf-8 weigh-admin.jar exit ``` #### 部署建议 1. **启动文件夹放置**: ```powershell # 用户级自启 (推荐) Copy-Item "d:\erp\java\start_jars.bat" -Destination "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup" # 系统级自启 Copy-Item "d:\erp\java\start_jars.bat" -Destination "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp" ``` 2. **配套关闭脚本**(可选): ```batch @echo off taskkill /f /im javaw.exe echo 所有Java服务已终止 timeout /t 3 ``` #### 验证方法 ```powershell # 1. 手动执行测试 .\start_jars.bat # 2. 检查进程 tasklist | findstr "javaw" # 3. 查看端口占用 netstat -ano | findstr ":8080" # 替换为实际端口 ``` ### 关键技术说明 | 原命令 | 问题 | 优化方案 | |--------|------|----------| | `start java` | 弹出黑窗口 | `start javaw`[^2] | | 无`chcp` | 日志乱码 | `chcp 65001`[^1] | | `cd path` | 跨盘符失败 | `cd /d path` | | 并行启动 | 资源竞争 | 添加`timeout`延迟 | > **$\textcolor{red}{重要提醒}$**:若服务间有启动依赖,需在关键服务间添加延迟: > ```batch > start javaw ... erp-auth.jar > timeout /t 10 >nul # 等待10秒 > start javaw ... erp-gateway.jar > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值