为了账号安全,请及时绑定邮箱和手机立即绑定

从bat文件设置类路径不起作用

从bat文件设置类路径不起作用

三国纷争 2022-05-25 16:50:41
因此,当我手动启动桌面上的 bat 文件时,它可以工作,因为通过其图标执行 bat 文件使用图标(文件)的目录,即“C:\Users\Michael\Desktop”。set CLASSPATH = %~dp0 &:: %~dp0 stands for the directory of the bat filejava InitArray 5 0 4 &:: commentpause当我从其桌面图标运行上面的 bat 文件(InitArray.bat)时,它可以工作。java InitArray 5 0 4 &:: commentpause当我从其桌面图标运行上面的 bat 文件(test.bat)时,它可以工作。但是当我从任务调度程序运行 InitArray.bat 时,它使用目录“C:\WINDOWS\system32”。但这应该不是问题,因为 bat 文件所做的第一件事是“设置 CLASSPATH = C:\Users\Michael\Desktop\”。这是任务调度程序尝试运行 InitArray.bat 的结果。C:\WINDOWS\system32>set CLASSPATH = C:\Users\Michael\Desktop\C:\WINDOWS\system32>java InitArray 5 0 4Error: Could not find or load main class InitArrayC:\WINDOWS\system32>pausePress any key to continue . . .现在,我知道我可以通过将“C:\Users\Desktop\”添加到环境变量 CLASSPATH 来解决这个问题。但我不应该这样做,因为我在尝试运行 java 类之前在我的 bat 文件的第一行中手动将类路径设置为桌面。
查看完整描述

2 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

设置变量时,从变量名的开头开始,直到最后输入的字符用作变量名的一部分,在 . 之前=和 . 之后的值=。所以:

set CLASSPATH = Somepath

将以变量名%CLASSPATH %(注意尾随空格)和值Somepath(注意起始空格)结束。

即使你在值之后添加了一个意外的空格,它也会成为它的一部分,所以这 set CLASSPATH=Somepath将以带有尾随空格的值结束Somepath

因此,请始终在 之前或之后不留空格,=并始终将您的代码用双引号括起来以消除空格:

set "CLASSPATH=Somepath"

或者在您的实际情况下,它应该如下所示:

set "CLASSPATH=%~dp0"


查看完整回答
反对 回复 2022-05-25
?
噜噜哒

TA贡献1784条经验 获得超7个赞

设置 CLASSPATH 以及 java 执行命令或使用 cd 命令更改目录。


cd /path_to_required_folder   // set current directory

java -cp /classpath_location/ test.jar your.package.MainClass [args...]

希望这可以帮助。


查看完整回答
反对 回复 2022-05-25
  • 2 回答
  • 0 关注
  • 192 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信