本文目录一览:
- 1、java main方法中的命令行参数
- 2、java的-D命令行参数
- 3、java命令行参数是什么意思
- 4、java 中 用命令行参数接收输入 如何判断接收的数据是什么数据类型
- 5、Java 的命令行 编译和运行参数 如:-cp 怎么理解?
- 6、怎样用数组使用java命令行参数
java main方法中的命令行参数
当你使用命令行的形式运行.class文件时,向你的类传递参数.
C:\java
YourClassName
参数1
[参数2
参数3
....]
参数之间用一个空格作为间隔符.
String[] args 这个字符串数组是保存运行main函数时输入的参数的,例如main函数所在的类名为test
那么你在cmd运行
java
test
a b
c 时,args[0]
= a
,args[1]=b,
args[2]=c
你就可以在你的程序中调用你输入的这些变量了。
args[]不就是那个字符串This is a simple Java program吗?
-------完全不是的,你理解不对。这样好了,你在运行的时候加个参数,比如 java test XX。然后在你的main函数里面加这段话:System.out.println("arg is"+args[0]),然后看看输出是什么?
是不是这个:
This is a simple Java program
arg is XX
在运行时输入java test xx yy zz,并且在你的main函数里面加这段话:System.out.println("arg is"+args[0]+" "+args[1]+" "+args[2]),然后看看输出是什么?
是不是:
This is a simple Java program
arg is xx yy zz
现在你理解了吗。。。
如果没关系,为什么程序中去掉String args[]会出现错误?
--------之所以去掉会出错在于,不带String args[]的main函数和带String args[]的main函数,本质上已经不是同一个函数了,java 本身不存在不带String args[]的main函数,所以当然出错了。
java的-D命令行参数
$LOG是系统环境变量 可能是在你的脚本里定义的也可能是全局定义的,你可以用echo $LOG看一下是什么.这种-DXXXX是java运行参数的语法
作用是配置一些环境变量,具体有哪些参数,参数有什么效果,和你用的实际环境、项目架构都有关
对,让程序知道log_path代表什么,具体程序怎么用,那是程序的事了
System.getProperty(“propertyName”) 比如你的就是System.getProperty("log_path")就可以拿到了
java命令行参数是什么意思
这个名词我们可以分开来看:
“命令行"就是:DOC命令行"了,也就是那个黑色的框框。
"参数就"是程序里面所需要的"参数"了。
合起来"命令行参数”就是“在DOC下输入的程序所需的参数”。
java 中 用命令行参数接收输入 如何判断接收的数据是什么数据类型
一、在命令行或控制台中接收的数据,都是字符串型,需要强制转换。
强制转换时,需做空判断,如 if(str != null !str.trim().equals("")){
int i = Integer.parseInt(str);}
二、其他情况判断数据类型时,可以用java的反射机制。举个例子:
import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String aaa[]) {
Map m = new HashMap();
String s1 = "String1";
String s2 = "String2";
int i1 = 5;
double i2 = 10.5;
m.put(1, s1);
m.put(2, i1);
m.put(3, i2);
m.put(4, s2);
for (int i = 1; i = m.size(); i++) {
Class returnType = m.get(i).getClass();
System.out.println("return type is of type: "
+ returnType.getSimpleName());
}
}
}
Java 的命令行 编译和运行参数 如:-cp 怎么理解?
javac
用法:javac 选项 源文件
其中,可能的选项包括:
-g 生成所有调试信息
-g:none 不生成任何调试信息
-g:{lines,vars,source} 只生成某些调试信息
-nowarn 不生成任何警告
-verbose 输出有关编译器正在执行的操作的消息
-deprecation 输出使用已过时的 API 的源位置
-classpath 路径 指定查找用户类文件的位置
-cp 路径 指定查找用户类文件的位置
-sourcepath 路径 指定查找输入源文件的位置
-bootclasspath 路径 覆盖引导类文件的位置
-extdirs 目录 覆盖安装的扩展目录的位置
-endorseddirs 目录 覆盖签名的标准路径的位置
-d 目录 指定存放生成的类文件的位置
使用-d参数,如类中定义了包,则编译时会自动生成包, 如:javac -d . helloworld.java
表示在当前目录下编译Helloworld 类。.表示当前目录,如helloword中定义有包,则在当前目录下生成包:
-encoding 编码 指定源文件使用的字符编码
-source 版本 提供与指定版本的源兼容性
-target 版本 生成特定 VM 版本的类文件
-version 版本信息
-help 输出标准选项的提要
-X 输出非标准选项的提要
-J标志 直接将 标志 传递给运行时系统
java
用法: java [-选项] 类 [参数...]
(执行一个类)
或者 java [-选项] -jar jar文件 [参数...]
(执行一个jar文件)
其中,可能的选项包括:
-client 选择 "client" VM(ginger547:应该是指Virtual Machine)
-server 选择 "server" VM
-hotspot 与 "client" VM同义 [不赞成]
默认情况的VM是client.
-cp 一个文件夹和zip/jar文件组成的类搜索路径
-classpath 一个文件夹和zip/jar文件组成的类搜索路径
一个由文件夹,JAR压缩文件,或者ZIP压缩文件组成的用来搜索类的列表
-D名字=值
设置一个系统属性
-verbose[:class|gc|jni]
使详细输出变的可用
-version 打印产品版本然后退出
-version:值
只运行指定版本
-showversion 打印产品版本后继续
-jre-restrict-search | -jre-no-restrict-search
在版本搜索的时候,包含/排除用户私人的JRE
-? -help 打印帮助信息
-X 打印非标准选项帮助
-ea[:包名...|:类名]
-enableassertions[:包名...|:类名]
使断言可用
-da[:包名...|:类名]
-disableassertions[:包名...|:类名]
是断言不可用
-esa | -enablesystemassertions
使系统级断言可用
-dsa | -disablesystemassertions
使系统级断言不可用
-agentlib:库名[=选项]
加载本地代理库库名,例如. -agentlib:hprof
同时可查看, -agentlib:jdwp=help和 -agentlib:hprof=help
-agentpath:路径名[=选项]
通过全路径名来加载本地代理库
-javaagent:jar路径[=选项]
加载Java编程语言代理,可查看 java.lang.instrument
怎样用数组使用java命令行参数
哥们你看看下面解释还行吗?
java命令行的常用参数
2008-09-05 18:38
java -classpath/-cp
虚拟机在运行一个类时,需要将其装入内存,虚拟机搜索类的方式和顺序如下:
Bootstrap classes,Extension classes,User classes。
Bootstrap中的路径是虚拟机自带的jar或zip文件,虚拟机首先搜索这些包文件,用System.getProperty("sun.boot.class.path")可得到虚拟机搜索的包名。
Extension是位于jre\lib\ext目录下的jar文件,虚拟机在搜索完Bootstrap后就搜索该目录下的jar文件。用System. getProperty("java.ext.dirs”)可得到虚拟机使用Extension搜索路径。
User classes搜索顺序为当前目录、环境变量 CLASSPATH、-classpath。
-classpath告知虚拟机搜索目录名、jar文档名、zip文档名之间用分号;分隔。
例如当你自己开发了公共类并包装成一个common.jar包,在使用common.jar中的类时,就需要用-classpath common.jar 告诉虚拟机从common.jar中查找该类,否则虚拟机就会抛出java.lang.NoClassDefFoundError异常,表明未找到类定义。在运行时可用System.getProperty(“java.class.path”)得到虚拟机查找类的路径。
使用-classpath后虚拟机将不再使用CLASSPATH中的类搜索路径,如果-classpath和CLASSPATH都没有设置,则虚拟机使用当前路径(java.exe所在路径)作为类搜索路径。
推荐使用-classpath来定义虚拟机要搜索的类路径,而不要使用环境变量CLASSPATH的搜索路径,以减少多个项目同时使用CLASSPATH时存在的在冲突。例如应用1要使用a1.0.jar中的类G,应用2要使用a2.0.jar中的类G,a2.0.jar是a1.0.jar的升级包,当a1.0.jar,a2.0.jar都在CLASSPATH中,虚拟机搜索到第一个包中的类G时就停止搜索,如果应用1应用2的虚拟机都从CLASSPATH中搜索,就会有一个应用得不到正确版本的类G。
java -version
显示虚拟机版本信息。
java -verbose/-verbosse:class
verbose和verbose:class含义相同,输出虚拟机装入的类的信息,显示的信息格式如下:
[Loaded java.io.FilePermission$1 from shared objects file]
当虚拟机报告类找不到或类冲突时可用此参数来诊断来查看虚拟机从装入类的情况。