我是java编程的新手。我有这个名为StartSample.bat的批处理文件。该批处理文件运行java程序。这是批处理文件的代码:
@echo off
set CLASSPATH=%CLASSPATH%;f3bc4jav.jar
set CLASSPATH=%CLASSPATH%;PalmSecureSample_Java.jar
@echo on
java <classname>
上面提到的.jar文件与批处理文件位于同一文件夹中。
当我运行StartSample.bat时,它会按原样执行Java程序。
我现在所做的是创建Java Class以使用以下代码运行该批处理文件:
Process p = Runtime.getRuntime().exec("C:\\WINDOWS\\system32\\cmd.exe /c start C:\\Identify\\dll\\StartSample.bat");
运行代码时出错。错误是:
C:workspace\Project>java <classname> Error: Could not find or load main class <classname>
什么似乎是问题?
答案 0 :(得分:2)
如果从Java类运行批处理文件,批处理文件工作目录将由java环境的工作目录继承。
要修复它,您应该使用%~dp0 设置jar相对于批处理文件的路径:
@echo off
set CLASSPATH=%CLASSPATH%;%~dp0\f3bc4jav.jar
set CLASSPATH=%CLASSPATH%;%~dp0\PalmSecureSample_Java.jar
@echo on
java <classname>
答案 1 :(得分:0)
您好,您可以尝试使用
@echo off
set CLASSPATH=%CLASSPATH%;f3bc4jav.jar
set CLASSPATH=%CLASSPATH%;PalmSecureSample_Java.jar
@echo on
java -cp %CLASSPATH% com.xyz.path.to.MainClass.class