java的-D选项作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java的-D选项作用相关的知识,希望对你有一定的参考价值。

java文件:
public static void main(String[] args)
System.out.println(System.getProperty("log_path"));

运行:java -Dlog_path=D:\ABC 类名
但并没有看到任何结果?谢谢!
java -D与java -d有区别么?谢谢!

为什么我在windows下编译这个Test类时提示以下错误,但在unix下编译运行都没问题呢?

Exception in thread "main" java.lang.NoClassDefFoundError: Test
Caused by: java.lang.ClassNotFoundException: Test
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: Test. Program will exit.

但我已经cd到这个TestParameter文件所在目录了,
javac TestParameter.java
java -Dlog_path=D:\ABC TestParameter

类名是“TestParameter”
(可能之前这里说的有点差别,但我确实使用的是TestParameter类名,并且是在TestParameter.class路径下执行java命令)

在环境变量CLASSPATH里把.加进去

执行 java 要cd到编译生成的TestParameter.class所在的目录

执行 javac 要cd到TestParameter.java所在的目录,执行 java 要cd到编译生成的TestParameter.class所在的目录

-D 设置系统参数

-d 设置编译生成的.class放到哪一个目录

代码如下:

public class Test 

 public static void main(String[] args) throws IOException 

  System.out.println(System.getProperty("log_path"));

         

什么叫区别,完全就不是一个意思。

经测试D:\\ABC 是可以输出的,见下图:

参考技术A 1.java已有默认系统属性,通过:System.getProperties().list(System.out);查看,结果如下:
-- listing properties --
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=D:\java\jdk1.6.0_23\jre\bin
java.vm.version=19.0-b09
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.java.launcher=SUN_STANDARD
sun.os.patch.level=
java.vm.specification.name=Java Virtual Machine Specification
user.dir=E:\workspace\javad\javad
java.runtime.version=1.6.0_23-b05
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=D:\java\jdk1.6.0_23\jre\lib\endorsed
os.arch=x86
java.io.tmpdir=C:\Users\ADMINI~1\AppData\Local\Temp\
line.separator=
java.vm.specification.vendor=Sun Microsystems Inc.
user.variant=
os.name=Windows 7
sun.jnu.encoding=GBK
java.library.path=D:\java\jdk1.6.0_23\bin;.;C:\Windows\...
java.specification.name=Java Platform. API Specification
java.class.version=50.0
sun.management.compiler=HotSpot Client Compiler
os.version=6.1
user.home=C:\Users\Administrator
user.timezone=
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=GBK
java.specification.version=1.6
user.name=Administrator
java.class.path=E:\workspace\javad\javad\target\test-...
java.vm.specification.version=1.0
sun.arch.data.model=32
java.home=D:\java\jdk1.6.0_23\jre
java.specification.vendor=Sun Microsystems Inc.
user.language=zh
awt.toolkit=sun.awt.windows.WToolkit
java.vm.info=mixed mode, sharing
java.version=1.6.0_23
java.ext.dirs=D:\java\jdk1.6.0_23\jre\lib\ext;C:\Wi...
sun.boot.class.path=D:\java\jdk1.6.0_23\jre\lib\resources...
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=pentium_pro+mmx pentium_pro pentium+m...
2.可以使用java -D修改这些属性,也可以创建自己的程序属性,如:java -Djava.io.tmpdir=d:\,修改临时文件存放目录
参考技术B -D 设置一个系统属性,供你程序使用。 参考技术C -D 设置一个系统属性,供你程序使用。 参考技术D 类名是Test么?检查下^_^

错题总结Java

1.把autosize自动设置大小调为false,即换为手动设置大小

技术分享

 

2.本题主要考查TextBox 控件的MaxLength属性的作用。

其作用是在用户手动输入内容的时候控制可输入字符串的长度用的,若是通过代码修改控件的Text属性,则是不起作用的。

技术分享

 

3.C#中,bool表示布尔类型。选项B和选项D的代码数据类型关键字使用错误,选项C的代码中变量名bool与C#数据类型相同也是错误的

技术分享

4.

A. 变量名首字母小写;

B.推荐一行一条语句;

C.正确

D.注释可以增加代码的可读性

技术分享

5.

技术分享

6.

技术分享

7.此题目考查的是WinForms窗体间数据的传递。

1.窗体间数据传递需要在目标窗体(FrmInfo)中定义成员接收传递的数据。

2.需要在创建目标窗体(FrmInfo)的时候把当前需要传递的数据赋值结目标窗体。

3.c 和d 选项明显操作的是登录窗体,所以可以直接排除。

4.接下来看a和b,b选项只创建并显示了目标窗体,并没有赋值。

技术分享

8.本题设置了图片路径为当前网页目录的images子目录下,宽度为200,替代文本 故选D

技术分享

 

9.

A、Items:(英语解释是 项目;所有项目)。

B、文本框中当前选定的文本。

C、返回下拉列表中被选选项的索引号。

D、使该对象成为列表中当前选定的对象。

技术分享

 

10.HTML 图像是通过 <img> 标签进行定义的。

技术分享

11.

技术分享

 

12.本题声明了3个变量,对它们赋初值a=21,b=22,c=23。

随后,在if语句中判断条件表达式(a<b || b>c),即:(21<22 || 22>23)=(true || false)。

我们知道:两个表达式中只要有一个结果为true,逻辑或运算符(||)的结果就是true。

本题的if语句条件表达式的结果是true,程序执行语句“Console.WriteLine(b);”输出变量b的值22。 

技术分享

13.

++ 是下一次在+1

所以答案是8

技术分享

14.HTML文档基本结构包含<html>,<head>,<body>3部分,其中<head>和<body>包含在<html>中,因此语句A描述正确,

HTML文档的扩展名有两种形式.htm和.html,因此语句B是正确的,

在HTML中进行注释使用<!--注释内容-->,因此语句C是错误的,由此可知选C

技术分享

 

以上是关于java的-D选项作用的主要内容,如果未能解决你的问题,请参考以下文章

docker run 命令的 -i -t -d选项的作用

docker run 命令的 -i -t -d选项的作用

sed -i 选项有啥作用?

MinGW 的编译器选项 Wl,--kill-at 不起作用

Java BorderLayout.add每次都不起作用[重复]

Linux命令--监管命令--分类