我想使用“jdeps”命令来分析一些jar文件的依赖关系。我的操作系统是Windows10。核心代码是
String command = String.format("jdeps \"%s\"", path.toAbsolutePath().toString());
String format = String.format("cmd.exe /c %s", command);
process = Runtime.getRuntime().exec(format);
我的计算机中有2个JDK版本,JDK11和JDK8。我想使用JDK11,我将环境变量JAVA_HOMEJDK11的路径。当我使用cmd windows执行代码时,它可以按照我想要的方式工作,但是如果我在Intellij Idea中运行它,JDK将更改为JDK8。
我确定我已经把项目设置-项目-项目SDK设置为JDK11了。项目语言级别是SDK默认值(lambda参数的11个局部变量语法)。模块-源代码-语言级别是“11-lambda参数的局部变量语法”。Intellij Idea的Java编译器也设置为11。在我的Intellij想法里没有关于JDK8的东西。
但是,如果我在Intellij Idea中运行我的代码,JDK仍然更改为JDK8。那让我发疯。是虫子吗?怎么做才能设置JDK11?
顺便说一句,我执行“setx JAVA_HOME”命令,在我的代码中将JAVA_HOME设置为JDK11,但它不起作用。
Intellij Idea在环境变量中使用PATH,如果我没有设置任何东西。我在代码中运行回声%PATH%。系统环境变量的结果不同。我试图重新启动我的Intellij Idea,但它不起作用。最后,我重新启动计算机,它的工作原理。
这些都没有使用JAVA_HOME
。
当您像这样执行jdeps
时,不合格,您将使用PATH
上的版本。
更改PATH
,或限定命令。
E、 g.默认情况下,路径
上没有Java,因此运行jdeps
unqualified失败,但如果我限定命令,我可以运行它:
C:\>jdeps -version
'jdeps' is not recognized as an internal or external command,
operable program or batch file.
C:\>C:\prog\Java64\jdk1.8.0_181\bin\jdeps -version
1.8.0_181
C:\>C:\prog\Java64\jdk-13.0.2\bin\jdeps -version
13.0.2
问题内容: 仅当数据库名称包含(新数据库(myid)等)时,我才能读取文件。我给出以下示例代码: 假设我的数据库名称de mo是指我在打印行时得到的数据库名称仅是de。数据库名称带有空白时可以吗? 问题答案: 您熟悉双引号错误吗?(用于或) 你可以试试: 只需确保您不必传递的任何参数都包含双引号( 而不 是以双引号开头) (请参见 错误6511002 ) 任何类似的参数: 将在 内部 (通过实现)
当我使用concurrentKafkaListenerContainerFactory时,有什么方法可以设置主题吗?我根本不想做任何注释。
问题内容: 我实际上何时需要调用此方法Runtime.getRuntime()。addShutdownHook()以及何时或为何需要关闭应用程序。任何人都可以通过举例说明一下。 谢谢 问题答案: 据我所知,我将在下面进行解释。您可以搜索它并找到很多信息。 将注册一些在程序终止时要执行的动作。您启动的程序以两种方式结束: 主线程(根)结束其运行上下文; 该程序遇到一些意外情况,因此无法继续进行。 如
问题内容: 此代码将执行一个外部exe应用程序。 如果我想执行外部Java文件怎么办?可能吗?例如以下命令: 该代码在java和cmd提示符下不起作用。如何解决呢? 问题答案: 首先,您的命令行看起来不正确。执行命令与批处理文件不同,它不会执行一系列命令,而只会执行一个命令。 从外观上看,您正在尝试更改要执行的命令的工作目录。一个更简单的解决方案是使用,它将允许您指定给定命令的起始目录… 例如…
问题内容: 我正在执行一个命令,该命令向我返回文件的修订号;’文档名称’。但是,如果执行命令时遇到问题,则应用程序将挂断。我该怎么做才能避免这种情况?请在下面找到我的代码。 问题答案: 我想问题是您只在读取InputStream而没有在读取ErrorStream。您还必须注意并行读取两个流。可能发生这种情况,当前从输出流中管道传输的数据已填满OS缓冲区,您的exec命令将自动挂起,以使您的阅读器有
问题内容: 我有一个程序Test.java: 应该将HelloWorld1和HelloWorld2打印到文件text.txt中。但是,当我查看文件时,只能看到HelloWorld1。 HelloWorld2去了哪里?它消失在稀薄的空气中了吗? 可以说我也想将HelloWorld2重定向到test.txt。我不能仅在命令中添加“ >> test.txt”,因为会出现文件已打开错误。那么我该怎么做呢?