几乎所有和Java有关的书,一提到搭建Java的运行环境,言必称设置JAVA_HOME等乱七八糟的操作系统环境变量。在网上很多所谓高手写的文章也是如出一辙,结果搞得很多Java初学者晕头转向,往往照做以后还是会出现问题,又不知道是哪个环节出错,浪费大量的时间和精力,我也是其中之一。
后来仔细看了一些软件的文档后,发现并没有提到设置操作系统环境变量之类的内容。使用Java编写的程序只要有Java虚拟机就可以运行,设置环境变量的目的只是让程序知道JVM的位置所在。所以,只要能让程序找到JVM,操作系统环境变量其实是可以不用设置的,尤其在系统上安装了多个不同版本的JDK之后,设置了反而会出现问题,至少到目前为止,我用过的eclipse,tomcat,geronimo,robocode等等软件都不用按照那些复杂的方式设置什么环境变量,就可以很好的运行。因为这些软件都有相应的启动脚本,或者配置文件,在其中加入需要的JDK或JRE所在的目录就行了。例如:eclipse的目录下就有一个eclipse.ini文件,用文本编辑工具打开后,在开始加上
-vm
C:\jdk1.5.0\bin\javaw.exe
启动eclipse的时候就不会提示找不到Java虚拟机了,而且还可以在一个系统下安装多个JDK而不冲突。Tomcat的设置方法也是类似的,在其bin目录下,编辑startup.bat文件,开始处加上
set JAVA_HOME=C:\jdk1.5.0
就行了。不过如果在linux操作系统下,就要在startup.sh脚本中加上类似
export JAVA_HOME=/opt/jdk1.5.0
这样的语句。
网上的文章大多数是转来转去,同样一篇文章可以出现在无数个技术网站上,这样的一些文章表面看起来是步骤清楚,甚至图文并茂,实践性强,但是涉及到一些基本的原理时往往语焉不详,初学者不假思索地照做反而是误入歧途,南辕北辙。与其找这样的一些垃圾文章来看,不如看看软件附带的文档,很多问题都可以在其中找到答案。
分享到:
相关推荐
操作系统的五大类型是批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统。 多道程序设计:即在系统内(内存)同时存放并运行几道相互独立的程序。 多道程序设计的基础:是将...
1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 存储类型 1.10 同一个静态(static)函数或变量的所有声明都必需包含static存储类型吗? 1.11 extern在函数声明中是什么意思? ...
1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 5 存储类型 6 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 6 1.11 extern在函数声明中是什么...
提取并分析核心启动参数(从环境变量中读取参数,设置相应标志位等待处理,(parse_options()) 控制台初始化(为输出信息而先于PCI初始化,console_init()) 剖析器数据结构初始化(prof_buffer和prof_len变量) ...
GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 GetTextAlign 接收一个设备场景当前的文本对齐标志 GetTextCharacterExtra 判断...
【实验环境】 1、Ubuntu 7.0.4发行版 2、u-boot-1.3.1 3、FS2410平台 4、交叉编译器 arm-softfloat-linux-gnu-gcc-3.4.5 【实验步骤】 一、建立自己的平台类型 (1)解压文件 #tar jxvf u-boot-1.3.1.tar.bz...
用开发环境进行LINT也可以使用开发环境来执行LINT操作,一般开发环境都支持运行可执行文件,但不一定支持运行批处理文件,下面用Source Insight , Ultra Edit, MSVC 6.0 来举例说明如何在开发环境下进行LINT。...
执行时可以不用输入扩展名,比如输入test如果当前路径下有一个test.g4b就会自动使用。 2013-10-17 1.修改代码支持新版HOTKEY。 2013-07-10 1.insmod现在支持长文件名(以前最多11个字符,现在没有限制). 2....
Sun就从来没有将它的Java交给过ECMA,以至于正当Microsoft尽力在Visual J++基础上拓展Java功能,并使之与Windows操作系统紧密结合在一起的时候,Sun公司对Microsoft提出了法律诉讼,控告Microsoft违反了许可证协议中...
性质2:设完全二叉树共有n个结点。如果从根结点开始,按层次(每一层从左到右)用自然数1,2,……,n给结点进行编号,则对于编号为k(k=1,2,……,n)的结点有以下结论: ① 若k=1,则该结点为根结点,它没有父...
第五章 变量和常量 .44 5.1 变 量 .44 5.2 常 量 .46 5.3 小 结 .47 第六章 类 型 转 换 .48 6.1 隐式类型转换 .48 6.2 显式类型转换 .53 6.3 小 结 .56 第七章 表 达 式 .58 7.1 操 作 符 .58 ...
Android 有丰富的功能,因此很容易与桌面操作系统混淆。Android 是一个分层的环境,构建在 Linux 内核的基础上,它包括丰富的功能。UI 子系统包括: •窗口 •视图 •用于显示一些常见组件(例如编辑框、列表和下拉...
用法当系统中安装了多种打印机时,在Windows 95中PrintSetup()函数打开如图2-1所示的对话框,单击“Setup”按钮设置打印机各种特性。如果系统中只有一个打印机,则直接打开该打印机的打印设置对话框。需要注意的是,...
如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该命令。 Diskpart 创建和删除硬盘驱动器上的分区。diskpart 命令仅在使用故障恢复控制台时才可用。 diskpart [ /add |/delete] [device_...
由不同的操作系统决定,可能要求先运行share.exe才能保证该函数正常工作。 _LZ关闭() 关闭由LZOpenFile 或 LZInit函数打开的一个文件。 _LZ复制() 复制一个文件。如源文件已压缩,则会在复制期间解压。文件必须是用...
%~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充 到找到的第一个驱动器号和路径。 %~ftzaI - 将 %I 扩充到类似输出线路的 DIR 在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法 用一个有效的 ...
句,这里我们将其放到private 里,因为一般的函数都放在public 里,而变量 都放在private 里。 #ifndef WIDGET_H #define WIDGET_H #include #include "mydlg.h" //包含头文件 namespace Ui { class Widget; } ...
逻辑结构和物理结构相互独立,所以网络的物理结构及其域结构之间没有必要的相关性,活动目录允许单个站点中有多个域,单个域中有多个站点。 2 p h5 x$ E8 O, \0 s( d" q+ l; n. t6 E0 z4 F/ R1 ?$ F 如果配置方案未...