有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java执行批处理文件错误:“无法找到或加载主类”

我是java编程的新手。我有一个名为StartSample的批处理文件。球棒此批处理文件运行java程序。这是批处理文件的代码:

@echo off
set CLASSPATH=%CLASSPATH%;f3bc4jav.jar
set CLASSPATH=%CLASSPATH%;PalmSecureSample_Java.jar

@echo on
java <classname>

这个。上面提到的jar文件与批处理文件位于同一文件夹中

当我运行StartSample时。bat,它执行Java程序,就像它应该执行的那样

现在我所做的是创建Java类,用以下代码运行批处理文件:

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>

有什么问题吗


共 (2) 个答案

  1. # 1 楼答案

    如果从Java类运行批处理文件,则批处理文件工作目录将由Java环境的工作目录继承

    要修复它,您应该使用%~dp0设置jar相对于批处理文件的路径:

    @echo off
    set CLASSPATH=%CLASSPATH%;%~dp0\f3bc4jav.jar
    set CLASSPATH=%CLASSPATH%;%~dp0\PalmSecureSample_Java.jar
    
    @echo on
    java <classname>
    
  2. # 2 楼答案

    你好,你可以试一下

    @echo off
    set CLASSPATH=%CLASSPATH%;f3bc4jav.jar
    set CLASSPATH=%CLASSPATH%;PalmSecureSample_Java.jar
    
    @echo on
    java -cp %CLASSPATH% com.xyz.path.to.MainClass.class