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

几乎所有和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

这样的语句。

 

网上的文章大多数是转来转去,同样一篇文章可以出现在无数个技术网站上,这样的一些文章表面看起来是步骤清楚,甚至图文并茂,实践性强,但是涉及到一些基本的原理时往往语焉不详,初学者不假思索地照做反而是误入歧途,南辕北辙。与其找这样的一些垃圾文章来看,不如看看软件附带的文档,很多问题都可以在其中找到答案。

 

操作系统环境变量 系统中,环境变量用于存储系统级或用户级的配置信息,如代理设置、路径变量、应用程序参数等。export命令会列出 当前 shell 进程中已经标记为“导出”到子进程的环境变量。env命令会 列出当前 shell 进程的所有环境变量,包括所有导出的变量。它不会显示那些 只在当前 shell 进程中存在但未导出到子进程 的变量。在 Windows 上,环境变量可以通过。在 Linux 上,环境变量主要由。以及其他相关命令的使用方式。 阅读详情

相关推荐

Vivaldi天线HFSS建模实战:从参数化曲线到辐射优化的完整流程

本文详细介绍了Vivaldi天线在HFSS中的建模与优化全流程,涵盖参数化曲线绘制、馈电系统设计及性能验证等关键步骤。通过实战案例分享,帮助工程师掌握超宽带天线的HFSS建模技巧,提升雷达探测和通信系统设计效率。重点解析了指数渐变曲线建模、微带馈电优化等核心技术要点。

weixin_29228781的博客 273

操作系统——环境变量

Linux环境下,操作系统的环境变量,你晓得吗?

lyzzs222的博客 2282

NE555构成多谐振荡器及三角波、正弦波的生成(附工程文件)

NE555构成多谐振荡器及三角波、正弦波的生成 续上一篇:NE555基本原理及相关公式的推导

qq_49979053的博客 5万+

Windows操作系统的环境变量

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,具体起什么作用这和具体的环境变量相关。常用的是PATH环境变量,其作用是告诉系统,当要求系统运行一个程序而没有告诉系统若在当前目录下面没有寻找到此程序,还应到哪些目录下去寻找。............

cnds123的专栏 4万+

通义千问AI模型对接飞书机器人-集成飞书机器人(2-2)

http请求地址上一篇百炼平台配置的应用地址。

hefaji的博客 1916

5分钟搞懂SCMA:稀疏码多址接入的核心原理与实战应用

本文深入浅出地解析了SCMA(稀疏码多址接入)的核心原理与实战应用。通过对比传统正交多址技术,阐释了SCMA如何通过非正交叠加和稀疏码本设计,实现远超资源单元数的用户接入,从而有效应对5G海量机器通信(mMTC)的挑战。文章还探讨了其在上行海量连接、免授权接入等场景的应用潜力及工程实现中的关键考量。

zeta9的博客 264

操作系统运行环境

计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序(即系统外层的应用程序,或简称“应用程序”)。对操作系统而言,这两种程序的作用不同,前者是后者的管理者,因此“管理程序”(即内核程序)要执行一些特权指令,而“被管理程序”(即用户自便程序)出于安全考虑不能执行这些指令。

黄先生的博客 1412

【Gazebo安装指南】Ubuntu22.04LTS环境下的高效配置与常见问题解决

本文提供了在Ubuntu 22.04 LTS系统上高效安装和配置Gazebo仿真环境的详细指南。针对Gazebo Classic版本,文章对比了通过ROS 2仓库和Ubuntu官方仓库两种主流安装方法,并重点解决了安装过程中常见的软件包定位、模型下载及图形驱动等问题,帮助用户快速搭建稳定的机器人仿真开发环境。

weixin_29279101的博客 435

Windows操作系统的体系结构、运行环境和运行状态

Windows操作系统的体系结构、运行环境和运行状态

荔园微风的博客 3226

零基础教程:用Python给试卷照片自动切题(有道OCR+PIL完整流程)

本文为零基础用户提供了一套完整的Python自动化切题方案。通过调用有道OCR API识别试卷照片中的题目坐标,并利用PIL库进行精准裁剪,将杂乱的试卷图片自动分割为独立的题目图像。教程详细涵盖了环境搭建、图像预处理、API调用、坐标解析与批量处理全流程,帮助教育工作者和技术爱好者高效处理大量试卷,实现工作流程自动化。

grpc6streamer的博客 1173

Ollama DNS 重新绑定攻击 (CVE-2024-28224)

一旦 DNS 重新绑定攻击成功,攻击者就可以对这些 API 进行排序,以读取 Ollama 运行的进程可访问的任意文件数据,并将这些数据泄露到攻击者控制的系统中。完成对“创建模型” API 请求的调用后,Ollama 将收集组成新创建的用户模型的许多工件,包括大型语言模型数据、许可证数据等,以及我们要提取的文件,所有这些都可以通过其 SHA256 内容进行寻址。这是我们要窃取的文件,在我们的示例中,是可通过运行 Ollama 的主机上的路径名访问的现有文本文件。值得注意的是,该模型配置为通过参数中的。

技术超强的网络安全平台 1648

操作系统:Linux 环境变量配置的 6 种方法

Linux环境变量(超详细)环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,是操作系统为了满足不同的应用场景预先在系统内预先设置的一大批全局变量。环境变量分类按生命周期分:永久的:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。临时的:用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效。按作用域分:系统环境变量:公共的,对全部的用户都生效。

ken2232的博客 3万+

PGM-Explainer实验总结

PGM-Explainer建立了一个概率图模型,为GNN提供实例级解释。 论文标题:PGM-Explainer: Probabilistic Graphical Model Explanations for Graph Neural Networks 论文地址:2010.05788.pdf (arxiv.org) PGM-Explainer实验 实验目的 研究PGM-Explainer的有效性 实验方案 合成数据集的节点分类 与其他解释器做对比实验 使用六个合成数据集。 每个输入图都是一个

笔记|思路|总结 1万+

[操作系统] 环境变量详解

环境变量是Linux系统中一个不可或缺的机制,通过灵活运用环境变量,可以极大地提高系统的可用性和效率。了解环境变量的基本概念、设置方式以及在程序中的使用方法,对于开发和管理系统具有重要意义。以上就是关于环境变量的全部讲解。

kevin_blog 2447

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

我们为什么要配置环境变量

搜索“配置环境变量”,十有八九是jdk环境变量的配置,基本上多数都是教我们如何去配置,真正去说明为什么要去配置环境变量,为什么要那样配置并不多。 就以java环境变量来说,每装一次都需要配置一次,每配置一次都去查资料岂不是很麻烦,还可能出现各种各样的问题,无论是Windows或者是Linux。如果搞清楚原理,能让我们更从容的应对这样问题。

Just do it! 2万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Java环境变量,真的还有必要配吗?(不配置JDK也能运行Java程序啊)(转载)

转载:https://cloud.tencent.com/developer/article/1090147 作为年龄上堪称老鸟而技术上却是菜鸟的老菜鸟,为了祖国的编程事业,不惜拿出一个月工资,淘了一台配置稍高的二手笔记本,打算与老笔记本中的撸啊撸片彻底说再见,誓要在新机种开启一番撸啊撸的新事业。当然,撸代码离不开基本的环境搭建,每次新机上手都要百度一堆杂乱的似是而非的环境搭建教程,才勉强把开发环境搭建起来,时间耗费不少,但终是拾人牙慧,生搬硬套,从未能理解深层原理,将其内化吸收形成自己的技术积累;而环境搭

weixin_47416815的博客 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Linux操作系统中的环境变量

环境变量 基本概念 环境变量(environment varibles)一般是指在操作系统中用来指定操作系统运行环境的一些参数。环境变量是由系统定义的。如:在编写C/C++代码的时候,在链接的时候,我们也许一直都不知道我们所链接的动静态库在哪里,但是照样可以链接成功,生成可执行程序,原因在于有相关环境变量帮助编译器进行查找。 环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性。 常...

TANGY的博客 1364

【Linux探索学习】第十五弹——环境变量:深入解析操作系统中的进程环境变量

【Linux探索学习】第十五弹:环境变量:帮助我们更好的理解系统资源管理和应用,了解底层知识!!

2301_80220607的博客 4480

为什么要配置环境变量

为什么要配置环境变量

m0_61951523的博客 1万+

Linux操作系统--环境变量

这篇文章主要介绍了环境变量的基本概念和常见用途,以及常见的环境变量如PATH、HOME、SHELL等。文章中展示了如何测试环境变量的设置和使用,以及通过命令如echo、export、env、unset、set来操作环境变量。此外,还介绍了通过代码获取环境变量的方法,包括使用main函数的参数env变量、extern变量environ和系统调用getenv、putenv来获取和设置环境变量的示例。最后,文章提及了修改已存在的环境变量、删除环境变量以及环境变量的全局属性。

2301_78702440的博客 1452

环境变量基本操作及path环境变量

环境变量基本操作及path环境变量环境变量的解释 环境变量的解释

weixin_45072139的博客 1万+

Java环境变量,真的还有必要配吗?

  作为年龄上堪称老鸟而技术上却是菜鸟的老菜鸟,为了祖国的编程事业,不惜拿出一个月工资,淘了一台配置稍高的二手笔记本,打算与老笔记本中的撸啊撸片彻底说再见,誓要在新机种开启一番撸啊撸的新事业。当然,撸代码离不开基本的环境搭建,每次新机上手都要百度一堆杂乱的似是而非的环境搭建教程,才勉强把开发环境搭建起来,时间耗费不少,但终是拾人牙慧,生搬硬套,从未能理解深层原理,将其内化吸收形成自己的技...

anghanlan0015的博客 921

java不配环境变,Java 环境变量, 真的还有必要配吗?

Java 环境变量, 真的还有必要配吗?作为年龄上堪称老鸟而技术上却是菜鸟的老菜鸟, 为了祖国的编程事业, 不惜拿出一个月工资, 淘了一台配置稍高的二手笔记本, 打算与老笔记本中的撸啊撸片彻底说再见, 誓要在新机种开启一番撸啊撸的新事业当然, 撸代码离不开基本的环境搭建, 每次新机上手都要百度一堆杂乱的似是而非的环境搭建教程, 才勉强把开发环境搭建起来, 时间耗费不少, 但终是拾人牙慧, 生搬硬套...

weixin_35620685的博客 654

虚拟的轨迹:在无形中改变进程的命运,深入解析操作系统中的进程环境变量

环境变量是键值对形式的全局变量,定义了系统和进程的运行环境。它们用于存储系统配置、用户信息以及运行时参数,供操作系统和应用程序读取和使用。本篇我们将全面介绍进程环境变量的`概念`、`常见环境变量`、`操作指令`,以及如何通过C语言中的getenv和setenv函数对环境变量进行操作,配以代码示例和表格,帮助你深入理解这一重要知识点。

2303_81060385的博客 1112

为什么要设置环境变量,设置环境变量的作用在哪里

1、什么是环境变量 引用百度百科里面的解释:环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。看到这里我相信大家可能还是有所疑惑,但是,不急,接着看。2、为什么需要环境变量 windows系统下,假如我们安装了某一款软件,安装结束后,在安装目录会生成一个该软件的.exe文件,双击该文件,我们就能启动软件。但是难道我们每次要运行该软件的时候都要先找到该.e

wdfscsdn2015的博客 7万+

操作系统——环境变量的奥秘与影响深度剖析

环境变量名称=内容,我们可以看到很多这种形式的环境变量,也可以看到PATH的内容是被“:”分隔开的几个路径,执行某个指令时就会依次从这些路径中找该指令的二进制文件,如果找到了就执行,直到最后一个路径都没找到就提示”command not found“。这就是一个简单的身份识别程序。字符串,这个表叫环境变量表,它的本质是一个指针数组,环境变量是由一个个字符组成的,数组各个指针各自指向一个环境变量。本质上,Linux中的一个个指令,都是程序,既然都是程序 ,为什么我们编写的程序需要带上./ ,而指令不需要呢?

qq_58761784的博客 1176
上一篇: 红 叶
下一篇: 同时运行多个tomcat
arust
博客等级 码龄20年 6粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值