‘C:\Program‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

前言

最近在学java,昨天遇到一个很吊诡的问题,搞了我一个晚上都没解决,现在算是解决了。正如标题所示,这是我在vscode里运行java程序,企图调出外部控制台时,在终端显示的问题。我上网一通搜索,感觉跟我的问题八杆子打不到一起,于是我只能自己想着怎么解决,虽然花了一个晚上,不过结果终究是好的。

解决方案

解决方案其实也很简单,我们首先要明确我们手中的问题:'C:\Program' 不是内部或外部命令,也不是可运行的程序 或批处理文件。通过控制变量法,发现问题出错在调用外部终端,在内部终端是可以正常运行的,于是我敏锐的察觉到这个报错信息有一个很关键的地方:

'C:\program'

这是个什么鬼东西?我想既然是编译报错,那么问题肯定是出在编译环节,而又跟这么一个文件路径相关的关键词有联系,这很难不让我想到是不是环境变量出错了,后来看了一下java的环境变量的路径里还真的有'C:\program',准确的说是C:\Program Files\Java\jdk-11.0.12,网上说这是因为Program Files这个文件夹的名称里有空格,于是干脆我把编译器javac包和和解释器java包所在的文件夹jdk文件夹的路径单独拷贝下来,重定向了Path路径。再重新打开vscode运行一下java程序果然可以调出外部控制台了。

具体步骤如下:

修改前:

修改后:

说明:

修改前jdk-17文件夹默认安装在了C:\Program Files\Java这个路径下,修改是先将jdk-17整个文件夹拷贝下来,然后在C盘目录下新建一个文件夹jdk,再在jdk文件夹下新建一个Java文件夹,然后将刚才拷贝的jdk-17粘贴到Java文件夹下,于是得到了新的路径C:\jdk\Java\jdk-17,将这个路径复制下来,修改原来的环境变量即可。

小提示:

这里并没有直接将jdk-17的bin目录路径添加到系统变量Path中,而是先新建了一个JAVA_HOME系统变量,将jdk目录的路径赋值给变量JAVA_HOME,再在JAVA_HOME后面添加"\bin",这样可以便于以后修改java环境变量,不懂得小伙伴可以去找找如何配置java环境变量的教程,很多教程都会提到这一点

提问:

你知道为什么要配置环境变量吗?因为系统变量可以在任何目录下被访问(windows系统很大一部分其实就是一个个文件组成的),而系统变量其实就是一个个文件的路径,java环境变量的路径(jdk的bin目录下)包含了java编译器和java解释器,将这个路径赋值给环境变量,那么在任何目录你都可以编译运行java源代码(因为编译指令和解释指令可以被全局搜素),C语言配置环境变量也是这个原理。

总结

通过这次教训,我再次深刻的体会到学习编程的路上总会遇到各种各样的难题,而有些疑难杂症是难以通过上网找到答案的,这就需要我们自己解决,我总结了以下几点经验:

1.找出错误原因,比如这次我是通过报错信息找出问题的根源所在,如果没有报错信息,你需要回想起出现问题前你干了什么,也许就是你干的这些事情导致的问题发生

2.不要盲目解决,很多时候我们还没完全弄清楚问题,就急着去解决,这会导致越弄越糟,原先的小问题可能会被你弄成大问题,本人深有体会,之前虚拟机就是这么坏的。因此,每一步都要谨慎,尽量在可控范围内。

3.先上网搜索出大概的眉目,如果网上的方法没用,再自己想办法,一定要小心谨慎。

4.解决问题后及时总结记录,下次遇到类似的问题可以参照以前的经验方法。

  • 21
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋窗7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值