【问题标题】:Java can't find my main [duplicate]Java找不到我的主要[重复]
【发布时间】:2016-02-28 18:45:06
【问题描述】:

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

找不到主类:com.dir1.dir2.dir3.dir4.ManagementAgent。 程序将退出。

此路径和文件确实存在于其中一个 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. 相对路径;一般调用 jars 和 class(例如 .\*;.
  2. 绝对路径,一般调用 jar 和类(例如 c:\apps\ecs\bin\*;c:\apps\ecs\bin)
  3. 相对路径,显式调用 jars(如上所示)
  4. 绝对路径,显式调用 jars(如何在 Solaris 服务器上执行)

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

【问题讨论】:

  • 对此进行跟进。我最终找到了解决方案 - 问题似乎是安装的 java 是 32 位并且代码需要 64 位安装,或者 java 版本太低(尽管它们是相同的版本,只是不同的更新) ,或两者兼而有之。

标签: java windows batch-file syntax


【解决方案1】:

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

jar tf .\ecs.jar

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

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

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

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

java -version

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-26
    • 2016-11-08
    • 2012-08-12
    • 2018-03-05
    • 1970-01-01
    • 2016-12-17
    • 2013-02-15
    • 2014-06-08
    相关资源
    最近更新 更多