`
arust
  • 浏览: 93725 次
  • 性别: Icon_minigender_1
  • 来自: 海底
社区版块
存档分类
最新评论

有必要设操作系统环境变量吗?

阅读更多

几乎所有和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 楼 icefire 2010-03-09  
就是喜欢这样的。我就重来不设环境变量,污染我的环境。而且很早以前也因为环境变量问题,搞得自己很郁闷,后来理解后,就再也不设了。

相关推荐

    《计算机操作系统》期末复习指导

    操作系统的五大类型是批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统。 多道程序设计:即在系统内(内存)同时存放并运行几道相互独立的程序。 多道程序设计的基础:是将...

    你必须知道的495个C语言问题

    1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 存储类型 1.10 同一个静态(static)函数或变量的所有声明都必需包含static存储类型吗? 1.11 extern在函数声明中是什么意思? ...

    《你必须知道的495个C语言问题》

    1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 5 存储类型 6 1.10 同一个静态(static)函数或变量的所有声明都必须包含static存储类型吗? 6 1.11 extern在函数声明中是什么...

    ARM_Linux启动分析.pdf

    提取并分析核心启动参数(从环境变量中读取参数,设置相应标志位等待处理,(parse_options()) 控制台初始化(为输出信息而先于PCI初始化,console_init()) 剖析器数据结构初始化(prof_buffer和prof_len变量) ...

    API之网络函数---整理网络函数及功能

    GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 GetTextAlign 接收一个设备场景当前的文本对齐标志 GetTextCharacterExtra 判断...

    uboott移植实验手册及技术文档

    【实验环境】 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...

    代码语法错误分析工具pclint8.0

    用开发环境进行LINT也可以使用开发环境来执行LINT操作,一般开发环境都支持运行可执行文件,但不一定支持运行批处理文件,下面用Source Insight , Ultra Edit, MSVC 6.0 来举例说明如何在开发环境下进行LINT。...

    grub4dos-V0.4.6a-2017-02-04更新

    执行时可以不用输入扩展名,比如输入test如果当前路径下有一个test.g4b就会自动使用。 2013-10-17 1.修改代码支持新版HOTKEY。 2013-07-10 1.insmod现在支持长文件名(以前最多11个字符,现在没有限制). 2....

    c#学习笔记.txt

    Sun就从来没有将它的Java交给过ECMA,以至于正当Microsoft尽力在Visual J++基础上拓展Java功能,并使之与Windows操作系统紧密结合在一起的时候,Sun公司对Microsoft提出了法律诉讼,控告Microsoft违反了许可证协议中...

    计算机二级公共基础知识

    性质2:设完全二叉树共有n个结点。如果从根结点开始,按层次(每一层从左到右)用自然数1,2,……,n给结点进行编号,则对于编号为k(k=1,2,……,n)的结点有以下结论: ① 若k=1,则该结点为根结点,它没有父...

    C#微软培训资料

    第五章 变量和常量 .44 5.1 变 量 .44 5.2 常 量 .46 5.3 小 结 .47 第六章 类 型 转 换 .48 6.1 隐式类型转换 .48 6.2 显式类型转换 .53 6.3 小 结 .56 第七章 表 达 式 .58 7.1 操 作 符 .58 ...

    Google Android SDK开发范例大全(完整版)

    Android 有丰富的功能,因此很容易与桌面操作系统混淆。Android 是一个分层的环境,构建在 Linux 内核的基础上,它包括丰富的功能。UI 子系统包括: •窗口 •视图 •用于显示一些常见组件(例如编辑框、列表和下拉...

    powerbuilder

    用法当系统中安装了多种打印机时,在Windows 95中PrintSetup()函数打开如图2-1所示的对话框,单击“Setup”按钮设置打印机各种特性。如果系统中只有一个打印机,则直接打开该打印机的打印设置对话框。需要注意的是,...

    网管教程 从入门到精通软件篇.txt

    如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该命令。 Diskpart  创建和删除硬盘驱动器上的分区。diskpart 命令仅在使用故障恢复控制台时才可用。  diskpart [ /add |/delete] [device_...

    中文API支持库(1.0-0

    由不同的操作系统决定,可能要求先运行share.exe才能保证该函数正常工作。 _LZ关闭() 关闭由LZOpenFile 或 LZInit函数打开的一个文件。 _LZ复制() 复制一个文件。如源文件已压缩,则会在复制期间解压。文件必须是用...

    如何编写批处理文件批处理文件批处理文件

    %~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充 到找到的第一个驱动器号和路径。 %~ftzaI - 将 %I 扩充到类似输出线路的 DIR 在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法 用一个有效的 ...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    句,这里我们将其放到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 如果配置方案未...

Global site tag (gtag.js) - Google Analytics