Tag: powershell

Java在cmd中运行,但不在PowerShell中运行

我刚刚将java文件夹添加到我的环境变量中。 当我尝试从Windows命令行(cmd)执行javac HelloWorld.java和java HelloWorld ,它会正常执行。 但是,如果我打开Windows Powershell并执行相同操作,它会说: javac : The term ‘javac’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check t he spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 + javac HelloWorld.java […]

与从Java应用程序调用的Powershell进程交互

我正在尝试运行一个Java应用程序,它在启动时创建一个新的PowerShell进程,然后再多次与它进行交互。 调用powershell.exe并让它执行单个命令并返回输出对我来说很好。 如果我不希望powershell进程立即完成/退出但是保持打开以便我可以写入其outputStream并从inputStream接收结果,则会出现问题。 String input = “dir”; String[] commandList = {“powershell.exe”, “-Command”, “dir”}; ProcessBuilder pb = new ProcessBuilder(commandList); Process p = pb.start(); if(input != null) { PrintWriter writer = new PrintWriter(new OutputStreamWriter(new BufferedOutputStream(p.getOutputStream())), true); writer.println(input); writer.flush(); writer.close(); } //p.getOutputStream().close(); Gobbler outGobbler = new Gobbler(p.getInputStream()); Gobbler errGobbler = new Gobbler(p.getErrorStream()); Thread outThread = new Thread(outGobbler); Thread […]

从Java应用程序调用时,Powershell进程挂起

我正在尝试编写一个简单的应用程序,它接受命令行参数(将是一个Powershell ps1文件),然后运行它。 所以我已经开发了许多不同的方法,似乎遇到了问题。 如果我尝试从java中调用powershell,则启动windows进程并通过进程资源管理器可见,但是PowerShell永远不会返回,它会以某种forms挂起。 我使用的命令是: String command = “powershell -noprofile -noninteractive \”&C:\\new\\tst.ps1\””; 然后使用以下命令执行该命令: Runtime systemRuntime = Runtime.getRuntime(); Process proc = systemRuntime.exec(command); 目前我正在努力将位置编码为ps1文件,因为我试图将此作为一个问题进行排除。 使用进程资源管理器,我可以看到挂起的powershell进程和传递给它的命令是: powershell -noprofile -noninteractive “&C:\new\tst.ps1” 复制到cmd窗口时,可以启动tst.ps1文件。 在这个例子中,文件本身非常简单,我认为我可以将其排除在原因之外,因为我试图启动其他ps1文件,可以看到相同的行为。 为了进一步增加混乱,如果我使用上面发布的java代码并传入powershell命令而不是文件名,那么它就会成功运行。 我已经浏览了网络,看到很多人遇到了同样的问题,但似乎没有人发布解决方案,我希望它对我来说是一个简单的疏忽,可以很容易地修复。 任何提示/提示表示赞赏:D 艾伦

通过Java执行ADS相关的Powershell命令在使用2种不同方式时不会产生2种不同的错误

我一直试图通过java在PowerShell会话中执行一组命令,但没有运气。 我的目标是使用domain =“domain.com”在AD中搜索计算机对象。 我从一个命令开始。 不幸的是,以下命令在我的powershell提示符中成功运行: Get-ADComputer -Filter { Name -like “hostname” } –Server abcd:3268 -SearchBase ‘DC=domain,DC=com’ | FT DNSHostName # hostname is actual hostname provided by user and accepted in argument of Java methods # abcd is the IP-Address of my domain controller, and I’m trying to search a computer object in AD with the […]

将.cer格式的证书添加到.bks密钥库中

我需要将.cer格式的证书添加到BKS密钥库中 这里有SO的描述 如何将.cer转换为BKS 我做了下一步,创建一个目录并放入下一个文件: keytool.exe的 bcprov-EXT-jdk15on-1.46.jar Root_CA.cer 接下来打开Windows PowerShell并输入此命令(只是替换为我的数据) .\keytool -importcert -v -trustcacerts -file “path_to_cert/interm_ca.cer” -alias IntermediateCA -keystore “path_to_your_app/res/raw/myKeystore.bks” -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath “path_to_bouncycastle/bcprov-jdk16-145.jar” -storetype BKS -storepass mysecret 然后单击Enter,没有任何反应 也不是错误的消息,也不是别的 只是去下一行 我究竟做错了什么? 随意问 编辑 如果我没有输入命令.\ – 唱歌 喜欢这个keytool -importcert -v -trustcac……… ,所以我得到了这个错误 keytool:术语“keytool”未被识别为cmdlet,函数,脚本文件或可操作程序的名称。 检查名称的拼写,或者如果包含路径,请validation路径是否正确,然后重试。 在行:1 char:1 + keytool -importcert -v -trustcacerts -file“C:\ Users \ alexey.t \ […]

javac以“not a file”响应,但该文件存在

当我用javac编译一个Java文件时,它会回复错误not a file (而file not found ): 所以我尝试在WSL环境中编译它,它编译相同的文件。 然后,我意识到这可能是因为我把文件放在OneDrive下,所以我将它从OneDrive中移出并再次尝试,然后javac工作: 之后,我在Onedrive下创建了一个空的java文件并再次尝试,这也显示not a file错误: 然后,我开始意识到,当我在PowerShell中“dir”时,OneDrive下的文件模式包含一个“l”符号,表示“重新分析点”。 虽然我真的不明白它的含义,但我很好奇是否是因为我无法编译java文件。 或者是否还有其他潜在问题。

使用PowerShell远程运行Java

当我在远程会话( etsn {servername} )中运行PowerShell时,我有时似乎无法运行Java进程,即使是最简单的: [chi-queuing]: PS C:\temp> java -cp .\hello.jar Hello Error occurred during initialization of VM Could not reserve enough space for object heap Hello.jar是一个“Hello,world!” 应该只打印“Hello”到标准输出的应用程序。 所以,问题是,在PowerShell会话的另一端运行流程有什么特别之处吗? 有关Java VM如何工作的特殊内容可能不允许这样的处理吗? 内存是在远程计算机上分配的,对吧? 以下是可用物理内存的读数: [chi-queuing]: PS C:\temp> $mem = Get-wmiobject -class Win32_OperatingSystem [chi-queuing]: PS C:\temp> $mem.FreePhysicalMemory 1013000 但是,当我远程桌面到服务器并询问操作系统有多少可用内存时,它说270 MB物理内存可用。 让我知道你的想法!

powershell运行java进程问题

我试图在Windows XP中通过Powershell运行java进程。 这是命令: java.exe -cp .;./common.jar -Dcontext=atest1 -Dresourcepath=. DW_Install 所以,类路径是。 和。\ common.jar(我认为java采用了错误的斜杠,对吧?)有两个环境变量,一个是“atest1”,另一个是“。” 并且执行main的类是DW_Install(在默认包中)。 此命令在cmd.exe中有效,但不是PS。 这是怎么回事? 什么是PS在解析CMD不执行此命令时所做的事情(反之亦然)? 亚伦

如何在PowerShell中获取Java版本

我正在尝试在PowerShell中获取Java版本。 版本字符串打印到stderr ,所以我试图将其重定向到stdout并将其分配给字符串变量。 我收到以下奇怪的错误: PS P:\> & java -version 2>&1 java.exe : java version “1.7.0_25” At line:1 char:2 + & <<<&1 + CategoryInfo : NotSpecified: (java version “1.7.0_25”:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError Java(TM) SE Runtime Environment (build 1.7.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode) 没有重定向的呼叫(2>&1)给出了这个: PS P:\> & java -version […]

使用JAVA在远程计算机上运行PowerShell

我想使用java在一些远程机器上运行powershell。 如何实现这一目标。 目前这段代码没有在本地运行powershell命令。!! public void main() throws Exception{ String[] command = { /*”cmd.exe”, “/C”,*/ “powershell”, “Command”,”&”,”echo ‘********** hello world ********'”}; String out; ProcessBuilder processBuilder = new ProcessBuilder(command); Process process = null; try { process = processBuilder.start(); Logger.getInstance().info(“process started” ); } catch (IOException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } java.io.InputStream is = process.getInputStream(); […]