有没有一种简单的方法可以在命令行上为Java程序指定多个系统属性,而不是具有多个-D语句?
试图避免这种情况:
java -jar -DNAME="myName" -DVERSION="1.0" -DLOCATION="home" program.jar
我以为我看到了一个例子,该例子之后有人使用一个-D
引号引起来的字符串,但是我再也找不到该例子了。
答案是否定的。您可能已经看到了一个示例,其中有人会设置如下内容:
-DArguments=a=1,b=2,c=3,d=4,e=cow
然后,应用程序将解析Arguments
属性字符串的值以获得单个值。在您中,main
您可以将键值设为(假设可以保证输入格式):
String line = System.getProperty("Arguments");
if(line != null) {
String str[] = line.split(",");
for(int i=1;i<str.length;i++){
String arr[] = str[i].split("=");
System.out.println("Key = " + arr[0]);
System.out.println("Value = " + arr[1]);
}
}
另外,-D
应当jar
在Java命令行中的主类或文件之前。范例:java -DArguments=a=1,b=2,c=3,d=4,e=cow MainClass
问题内容: 有没有更好的方法可以从命令行打印系统属性?由于我们可以设置属性,例如 不用写课就能做到吗? 如果不可能的话,为什么不能/可行/好用命令行呢? 问题答案: 您可以在Hotspot JVM 1.7版及更高版本(1.6版不支持)中使用该标志: 自2010年底以来,OpenJDK就一直支持该标志。 在http://marxsoftware.blogspot.de/2016/02/hotspot
问题内容: 我正在尝试制作一个小的Java程序来执行系统命令,但似乎无法弄清楚 问题是如何使用Java执行系统命令? 更新:我阅读了文档并尝试了一些示例,但仍然无法弄清。为什么不能像C中那样简单 问题答案: 您可能需要查看的文档。这里给出一个例子。
问题内容: 我对使用Maven时通过命令行为某些单元测试设置属性的正确方法感到困惑。有很多问题(例如,在不设置MAVEN_OPTS环境变量的情况下指定Maven内存参数,是否可以通过命令行将jvmargs传递给maven,如何为Junit单元测试设置JVM参数?)碰到这个问题,但是没有人正在寻找我的答案。 我想将属性设置为某个值,但是我不想设置环境变量。 我可以使用以下属性在我的pom文件中配置s
问题内容: 使用Gradle执行JUnit 5测试时,我找不到如何设置系统属性。标准任务可以配置如下: 但是,任务似乎没有这种选择。 问题答案: 更新: 请注意,JUnit团队开发的JUnit Platform 1.2中已弃用,而在1.3中不再使用。请在Gradle 4.6或更高版本中切换到Gradle的标准任务。详细信息在这里。 正如我在这里提到的,如果您仍然使用过时的话,可以像这样设置系统属性
问题内容: 在下面的程序中,名称为“ don”,因此该命令将搜索活动目录,其所有名称均以don开头(例如donald等)。但是从读者对象分配后,line2变量变为空,并且永远不会进入循环。我究竟做错了什么?仅供参考:当我在命令行上输入命令时,该命令有效。 问题答案: 如果我没记错的话,管道(或重定向)需要使用cmd.exe启动程序。就像是:
问题内容: 我刚刚在Mac OS X上安装了Maven 3.3.1,并且使用Eclipse构建Maven项目给了我这个错误: Maven 3.2.5之前从未发生过。 有什么方法可以解决此问题(降级到3.2.5除外)? 我在哪里可以在Eclipse中准确设置此“ multiModuleProjectDirectory”属性? 问题答案: 在你需要这样去。 在编辑中,您需要输入 如果您已经将Maven