Java在CMD中运行,但不在Powershell中运行

Java在CMD中运行,但不在Powershell中运行,java,powershell,jvm,classpath,java-8,Java,Powershell,Jvm,Classpath,Java 8,所以,我对Java和cmd编译并不陌生,但我对使用windows powershell非常陌生。我有'javac'和'java'命令在CMD中运行良好,所有java程序都使用netbeans和eclipse编译。我也可以在windows powershell中毫无问题地使用javac,但在尝试运行java程序(即java MyProgram)时,在编译它之后,我会遇到以下错误 Error: could not open 'C:\Program Files (x86)\Java\jre7\lib

所以,我对Java和cmd编译并不陌生,但我对使用windows powershell非常陌生。我有'javac'和'java'命令在CMD中运行良好,所有java程序都使用netbeans和eclipse编译。我也可以在windows powershell中毫无问题地使用javac,但在尝试运行java程序(即java MyProgram)时,在编译它之后,我会遇到以下错误

 Error: could not open 'C:\Program Files (x86)\Java\jre7\lib\jvm.cfg
现在我正在运行Java8,所以我不知道为什么它会查找这样的文件,因为CMD确认“Java”和“javac”都运行版本8,并且设置了正确的路径,否则它们不会在那里运行。请不要只告诉我更多关于设置路径的信息,因为我已经检查了一遍又一遍。此外,我还确保我能找到的与java版本7相关的任何内容都已卸载/删除


好的,任何建议都将不胜感激。非常感谢。

尝试使用一个小的cmd-order-bat文件启动应用程序。Powershell会进行大量解析并破坏您的呼叫。我通常会这样使用:

$Result = Invoke-Expression "cmd /c $Tempbat"
另一种方法是使用停止分析字符:-%


试着在你的PowerShell中打印JAVA\u HOME,你能给我一个例子来说明你的意思吗?你可以通过
echo%JAVA\u HOME%
echo%JAVA\u HOME%
来检查它不起作用。要从PowerShell打印
JAVA\u HOME
,只需输入
$env:JAVA\u HOME
。顺便说一下,我们需要一个您尝试运行的命令示例。我认为这是您环境的问题,而不是PowerShell或Java程序的问题。你知道,类路径问题有时很难调试。
icacls c:\scripts --% /grant ***\ScriptAdmin:(CI)(OI)F