idea为java程序添加启动参数(program arguments,vm arguments,Environment variable),并在程序中获取使用

问题

笔者学习Hadoop MapReduce开发过程中
借助IDEA开发工具, 实现MapReduce API调用, 对于hdfs端输入输出文件应该输入至program arguments,但是笔者将其输入至Environment variable, 导致程序无法找到位置

具体问题

请添加图片描述

解决方案

对于hdfs端输入输出文件应该输入至program arguments

原因

笔者不清楚idea为java程序添加启动参数(program arguments,vm arguments,Environment variable)的方式以及作用导致该错误,
在此,笔者将idea为java程序添加启动参数(program arguments,vm arguments,Environment variable)的方式以及作用进行总结

program arguments

作用

program arguments 中的值作为 args[] 的参数传入应用程序,

书写格式

参数1 参数2……参数n
注意: 参数之间要以空格分隔,如果参数值中间有空格,则用引号括起来

调用格式
String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
System.out.println("第一个参数" + otherArgs[0]System.out.println("第二个参数" + otherArgs[1]

VM Arguments

作用

VM Arguments是Java启动参数, 通过VM Arguments设置的JAVA虚拟机的属性
Java启动参数分类
类别1: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;
类别2: 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;
类别3: 其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;

书写格式

系统参数的标准格式为:-Dargname=argvalue,
标准格式参数1 标准格式参数2……标准格式参数n
注意: 参数之间要以空格分隔,如果参数值中间有空格,则用引号括起来

调用格式

在这里插入图片描述

program arguments 具体可选内容

-D set a system property(设置系统属性) 可通过语句System.getProperties().list(System.out);查看有哪些参数可以设置。 可设置的参数:
– listing properties –
java.runtime.name=Java(TM) 2 Runtime Environment, Stand…
sun.boot.library.path=C:\Program\Files\Java\jre1.5.0_08\bin
java.vm.version=1.5.0_08-b03
java.vm.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
path.separator=;
java.vm.name=Java HotSpot(TM) Client VM
file.encoding.pkg=sun.io
user.country=CN
sun.os.patch.level=Service Pack 2
java.vm.specification.name=Java Virtual Machine Specification
user.dir=D:\wapSearchLogService
java.runtime.version=1.5.0_08-b03
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=C:\Program Files\Java\jre1.5.0_08\lib…
os.arch=x86
java.io.tmpdir=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\
line.separator=
java.vm.specification.vendor=Sun Microsystems Inc.
os.name=Windows XP
sun.jnu.encoding=GBK
java.library.path=C:\Program Files\Java\jre1.5.0_08\bin…
java.specification.name=Java Platform API Specification
sun.management.compiler=HotSpot Client
Compiler os.version=5.1
user.home=C:\Documents and
Settings\Administrator
user.timezone=Asia/Shanghai
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=GBK
java.specification.version=1.5
user.name=Administrator
java.class.path=D:\wapSearchLogService\bin;D:\wapSear…
java.vm.specification.version=1.0
sun.arch.data.model=32
java.home=C:\Program Files\Java\jre1.5.0_08
java.specification.vendor=Sun Microsystems Inc.
user.language=zh
awt.toolkit=sun.awt.windows.WToolkit
java.vm.info=mixed mode, sharing
java.version=1.5.0_08
java.ext.dirs=C:\Program
Files\Java\jre1.5.0_08\lib…
sun.boot.class.path=C:\Program
Files\Java\jre1.5.0_08\lib…
java.vendor=Sun Microsystems Inc.
file.separator=\
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport…
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=amd64

常见配置汇总

1.堆设置

-Xms :初始堆大小
-Xmx :最大堆大小
-XX:NewSize=n :设置年轻代大小
-XX:NewRatio=n: 设置年轻代和年老代的比值。如:3,表示年轻代与年老代比值为13,年轻代占整个年轻代年老代和的1/4
-XX:SurvivorRatio=n :年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示EdenSurvivor=32,一个Survivor区占整个年轻代的1/5
-XX:MaxPermSize=n :设置持久代大小

2.收集器设置

-XX:+UseSerialGC :设置串行收集器
-XX:+UseParallelGC :设置并行收集器
-XX:+UseParalledlOldGC :设置并行年老代收集器
-XX:+UseConcMarkSweepGC :设置并发收集器

3.垃圾回收统计信息

-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:filename

4.并行收集器设置

-XX:ParallelGCThreads=n :设置并行收集器收集时使用的CPU数。并行收集线程数。
-XX:MaxGCPauseMillis=n :设置并行收集最大暂停时间
-XX:GCTimeRatio=n :设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)

5.并发收集器设置

-XX:+CMSIncrementalMode :设置为增量模式。适用于单CPU情况。
-XX:ParallelGCThreads=n :设置并发收集器年轻代收集方式为并行收集时,使用的CPU数。并行收集线程数。

6.一般环境下的默认参数:

1:jre中的Default VM Arguments: -Xms256M -Xmx640M -XX:PermSize=256m
-XX:MaxPermSize=768m 2:TomcatOptional Java VM Arguments-Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPermSize=512m 3:eclipse.ini中: -vmargs-Xms256m-Xmx512m

Environment variable

作用

通过Environment variable设置系统环境变量

书写格式

方式1
要点击最右侧的图标,进入设置:
请添加图片描述
方式2
参数1;参数2;……参数n
注意: 参数之间要以分号分隔

调用格式

获取指定key的系统环境变量

final String myEnv = System.getenv("myEnv");

获取所设置的所有系统环境变量

final String myEnv = System#getenv();

参考文献

Idea中为java程序添加启动参数(含:VM options、Program arguments、Environment variable)
idea为java程序添加启动参数(program arguments,vm arguments,Environment variable),并在程序中获取使用
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞滕人生TYF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值