Java 找不到我的 main

标签 java windows batch-file syntax

我一直致力于将 Java 应用程序从 Solaris 服务器移植到 Windows 服务器。我终于重写了调用脚本,以向 java launch 命令提供所有适当的信息(我认为)。然而,我继续得到

Could not find the main class: com.dir1.dir2.dir3.dir4.ManagementAgent. Program will exit.

此路径和文件确实存在于一个 jar 文件中(CLASSPATH 中的第一个文件),并且它驻留在显示的路径中(例如,如果扩展 jar,则类文件的绝对路径将是 c:\apps\ecs\bin\com\dir1\dir2\dir3\dir4\ManagementAgent.class )

我一直在关注the directions from this Q&A但继续收到错误。

显然我还没有修复某些问题,但我可以找出可能是什么。

%JAVA_HOME%\bin\javaw.exe -Xms512m -Xmx1024m -cp .\ecs.jar;.\ect.jar;.\jmxri.jar;.\jmxtools.jar;.\log4j.jar;.\xercesImp.jar;.\xalan.jar;.\weblogic81.jar;.\classes12_9i.zip;.\localEJB.jar;.\tct_ip1.1.jar com.dir1.dir2.dir3.dir4.ManagementAgent

我从包含所有 jar 的目录执行命令。我尝试了 CLASSPATH 的几种变体(如下所示):

  1. 相对路径;一般调用 jar 和类(例如 .\*;. )
  2. 绝对路径,一般调用 jar 和类(例如 c:\apps\ecs\bin\*;c:\apps\ecs\bin )
  3. 相对路径,显式调用 jar(如上所示)
  4. 绝对路径,显式调用 jar(如何在 Solaris Server 上执行)

但似乎没有任何组合有效。

最佳答案

如果您还没有,我建议您使用以下命令仔细检查 jar 中的路径:

jar tf .\ecs.jar

您应该只看到类文件的相对路径,即:

com/dir1/dir2/dir3/dir4/ManagementAgent.class

我还将验证 ManagmentAgent 的 main 方法是静态的,并且将 String[] 作为其唯一参数。

编辑:我还将验证您使用的 Java 版本是否与编译应用程序的版本一样高或更高。您可以使用以下方法进行检查:

java -version

希望这有帮助,祝你好运!

关于Java 找不到我的 main,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33925627/

相关文章:

python - 用于访问另一个目录中的 python 脚本的通用批处理命令

windows - 如果系统路径变量不存在,如何将新路径插入到系统路径变量中

batch-file - 识别或删除 Windows 命令脚本环境变量中的等号 (=)

java - 如何让 JUnit4 记录所有未抛出的异常?

c# - 所有系统的循环是否以相同的速度发生?

java - 对于少量 (16 < x < 24) 的同时客户端连接尝试,Windows 主机上的服务器拒绝客户端套接字连接

windows - 在 Delphi 2K9 中运行时禁用和启用组件。奇怪的问题

c++ - 尝试确定打印机状态总是为离线和在线打印机返回 0

java - Spring Integration 抛出 NoSuchFileException

java - 创建螺旋动画(延迟帮助)