当前位置: 首页 > 面试题库 >

从命令行读取Java系统属性

袁鸿雪
2023-03-14
问题内容

有没有更好的方法可以从命令行打印系统属性?由于我们可以设置属性,例如

 java  -D<name>=<value>  //set a system property

不用写课就能做到吗?

如果不可能的话,为什么不能/可行/好用命令行呢?


问题答案:

您可以-XshowSettings在Hotspot JVM 1.7版及更高版本(1.6版不支持)中使用该标志:

java -XshowSettings:properties -version

自2010年底以来,OpenJDK就一直支持该标志。

在http://marxsoftware.blogspot.de/2016/02/hotspot-jvm-
XshowSettings.html
看到

编辑2016年12月14日

Oracle JVM附带了jcmd工具,该工具可让您查看正在运行的JVM中存在的标志。看到:

https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr006.html

对于此用例,您可以使用:

jcmd <pid> VM.system_properties

但是,还有许多其他有用的命令。例如:

jcmd <pid> VM.flags
jcmd <pid> VM.command_line
jcmd <pid> GC.run


 类似资料:
  • 问题内容: 有没有一种简单的方法可以在命令行上为Java程序指定多个系统属性,而不是具有多个-D语句? 试图避免这种情况: 我以为我看到了一个例子,该例子之后有人使用一个引号引起来的字符串,但是我再也找不到该例子了。 问题答案: 答案是否定的。您可能已经看到了一个示例,其中有人会设置如下内容: 然后,应用程序将解析属性字符串的值以获得单个值。在您中,您可以将键值设为(假设可以保证输入格式): 另外

  • 问题内容: 我正在尝试制作一个小的Java程序来执行系统命令,但似乎无法弄清楚 问题是如何使用Java执行系统命令? 更新:我阅读了文档并尝试了一些示例,但仍然无法弄清。为什么不能像C中那样简单 问题答案: 您可能需要查看的文档。这里给出一个例子。

  • 问题内容: 在下面的程序中,名称为“ don”,因此该命令将搜索活动目录,其所有名称均以don开头(例如donald等)。但是从读者对象分配后,line2变量变为空,并且永远不会进入循环。我究竟做错了什么?仅供参考:当我在命令行上输入命令时,该命令有效。 问题答案: 如果我没记错的话,管道(或重定向)需要使用cmd.exe启动程序。就像是:

  • 12.4.1 os 包 os 包中有一个 string 类型的切片变量 os.Args,用来处理一些基本的命令行参数,它在程序启动后读取命令行输入的参数。来看下面的打招呼程序: 示例 12.11 os_args.go: // os_args.go package main import ( "fmt" "os" "strings" ) func main() {

  • 我必须创建一个java类,我可以从标准控制台读取一些命令。这就像模拟网格中的运动。我很难完全创建我想要的东西。假设我有这样的命令: 从X、Y、方向开始 步子 “X”和“Y”是矩阵6x6的坐标。“方向”可以是“上”、“下”、“左”、“右”。如果我写“步骤”,我会做一步。 程序应该丢弃STEP命令,直到有效的START命令被执行。之后,我可以使用STEP或另一个有效的START命令,它将使用新的坐标将

  • 我正在尝试将Flyway作为一种可能的数据库迁移方式。 因为我支持多个数据库,并且可能同时为不同的环境和数据库运行迁移作业,所以我需要能够使用命令行工具,而不引用我SQL迁移位置的配置(属性)文件。有没有办法做到这一点?它似乎只从默认位置或flyway.properties文件中指定的位置读取。 我的安装目录是 C:\飞车。我正在使用以下命令在Windows服务器上运行此命令: 这是一个很棒的工具