有 Java 编程相关的问题?

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

使用类路径从命令行运行JAVA war文件以启动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主类位于路径..\Silverkissen-API\target\classes\se\consys\silverkissen\heroku\Main.class

谢谢你的帮助


共 (2) 个答案

  1. # 1 楼答案

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

    java-jarsilverkissen。战争

  2. # 2 楼答案

    主要问题很可能是因为类文件没有合并到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
    

    那没什么好做的。这将在运行时使用类路径执行项目。假设我有限的Java知识是正确的

    有更多经验的人可能会详细解释为什么这会奏效