运行 JAVA war 来自命令行的文件,类路径开始 API

Run JAVA war file from command line with classpath to start API

我遇到了很大的问题 运行在我用 maven 打包后从命令行运行我的 java api war 文件。

我正在尝试 运行 从我的 war 文件所在的目标文件夹中使用以下命令。

java -cp silverkissen.war se/consys/silverkissen/heroku/Main

还有很多其他变体,但我只得到

Error: Can't find or load main class se/consys/silverkissen/heroku/Main

我的 war 文件位于路径 ..\Silverkissen-API\target\silverkissen.war

我的 heroku main class 位于路径 ..\Silverkissen-API\target\classes\se\consys\silverkissen\heroku\Main.class

感谢您的帮助。

在您 jar/war 所在的位置打开命令提示符 然后 运行 下面的命令

java-罐子silverkissen.war

主要问题很可能是因为 class 文件未合并到 silverkissen.war 文件中。这意味着 war 文件本身没有 Main 函数。或者入口函数在其他地方。

或者它以某种我无法理解的神秘方式打包,特定于 maven、heroku 等。

但假设您位于项目根结构中,在 target 文件夹之前的一层通常您通常拥有 srctargetpom.xmlsystem.properties。我会尝试 运行 以下操作:

java -cp target/classes:target/dependency/* se.consys.silverkissen.heroku.Main

如果你在 Windows 那将是:

java -cp target\classes;target\dependency\* se.consys.silverkissen.heroku.Main

那就够了。这将在运行时使用 class-path 执行您的项目。假设我对 Java 的有限了解是正确的。

经验丰富的人可能会详细解释为什么会这样。