java - 如何在 Powershell 中运行 Java 命令
问题描述
我正在尝试在 powershell 脚本中运行命令。
我可以在 cmd 中运行下面的代码,我得到了想要的结果,因为 jar 文件是这样构建的,我无法更改它。
在 CMD 中调用 jar,如下所示:
java -jar session_reciever.jar "20190423-SESSION" "SESSION_RECIEVED_ACTUAL_TIME$2019-04-23 16:52:05"
第一个参数是会话名称,第二个是列名(在数据库中)和时间值,用 $ 分隔
结果是它将更新为列“SESSION_RECIEVED_ACTUAL_TIME”和会话值“20190423-SESSION”传递的时间值
但是在 Windows Powershell 中我没有达到这个结果。
$script_path = $myinvocation.invocationname;
$script_folder = split-path $script_path -parent;
$factory_home = split-path $script_folder -parent;
$COPS_factory_home = split-path $factory_home -parent;
$COPS_factory_root = split-path $COPS_factory_home -parent;
$session_processor_dir=$COPS_factory_home+'\FACTORY_DISTRIBUTOR\bin\session_processor'
echo $session_processor_dir
$session='20190423-SESSION' ### remove this later
$java_bin=$COPS_FACTORY_HOME+'\FACTORY_DISTRIBUTOR\bin\jdk1.7.0_67\jre\bin'
$nas_time = '2019-04-23 18:34:06' ##(Get-content $nas_time_file)
$session_nas_qe =$java_bin+'\java.exe -jar '+$session_processor_dir+'\session_reciever.jar "+$session+" "+SESSION_RECIEVED_ACTUAL_TIME+$+$nas_time+"'
echo $session_nas_qe
Invoke-expression $session_nas_qe
这个的输出是:
\\COPS_FACTORY\FACTORY_DISTRIBUTOR\bin\session_processor
\\COPS_FACTORY\FACTORY_DISTRIBUTOR\bin\jdk1.7.0_67\jre\bin\java.exe -jar \\Vcn.ds.volvo.net\appl-fs\ERP-CDEVM\PDMLINK-CDE-MA\COPS_FACTORY\FACTORY_DISTRIBUT
OR\bin\session_processor\session_reciever.jar 20190423-SESSION "SESSION_RECIEVED_ACTUAL_TIME$2019-04-23 18:34:06"
错误:
java.lang.ArrayIndexOutOfBoundsException: 1
+ CategoryInfo : NotSpecified: (java.lang.Array...ndsException: 1:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
at Session_reciever_less_connection.main(Session_reciever_less_connection.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:50)
请让我知道如何使用 powershell 解决这个问题。
解决方案
推荐阅读
- c# - 如何在 c# 中使用 wkhtmltopdf 为 pdf 添加水印?
- mysql - 如何进行利用 MySQL 后期行查找的 ORM 查询?
- jquery - Fancybox 3.5 Ajax 不工作。Ajax 内容无法加载错误
- python - Neo4j Docker 连接失败
- python-3.x - 如何解决从url读取文件时瓶子路由不断加载的错误?
- flutter - Flutter for web 编写新标签
- xml - XSLT 循环遍历具有针对模式的属性的元素
- .net - NoReboot=false 不适用于 CreateImageRequest
- javascript - 单击几次后弹出窗口内容未显示
- node.js - 处理续集迁移和初始化的工作流程?