[英]Heroku, Java, Procfile, Could not find or load main class
我正在使用帶有 Maven 的 heroku 來運行服務器。 我的目標是讓 heroku 將 java 類 server.class 作為 Web dyno 運行。
我將如何編寫一個 procfile 來執行 java 程序 server.class 作為 web?
我當前的 Procfile
web: java -cp $JAVA_OPTS target/classes/v1/a1/server
我的錯誤。(來自 heroku 日志)
Picked up JAVA_TOOL_OPTIONS: -Xmx350m -Xss512k -Dfile.encoding=UTF-8
Error: Could not find or load main class target.classes.v1.a1.server
State changed from starting to crashed
可能有用的信息
進程文件
web: java -cp $JAVA_OPTS target/classes/v1/a1/*
退貨
Error: Could not find or load main class target.classes.v1.a1.myOtherClass
我原來的 Procfile(也沒有用)
web: java -cp target/classes/:target/dependency/* server
heroku的默認Procfile是為Linux編寫的。 其中使用的分隔符是“:”。
要在Windows計算機上使用Procfile,請如下修改Procfile
web: java -cp target/classes/;target/dependency/* com.yourpackage.MainClassName
我認為您的Procfile
應該包含:
web: java -cp target/classes/:target/dependency/* v1.a1.server
這假定以下條件:
server
類在文件target/v1/a1/server.class
server
類的Java代碼包括package v1.a1;
我在您之前的嘗試中注意到的一些問題包括:
$JAVA_OPTS
傳遞給-cp
選項(不正確) /
而不是.
在完全限定的類名中(不正確) target
目錄包含在完全限定的類名稱中(不正確) target/classes/
和target/dependency/
目錄中的文件屬於類路徑(即傳遞給-cp
),而java
命令的最后一個參數應為完全限定的類名(形式為package.Class
)。
我忘記了一點POM。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals><goal>copy-dependencies</goal></goals>
</execution>
</executions>
</plugin>
並修改了我的Procfile
web: java $JAVA_OPTS -cp target/classes/:target/dependency/* v1.a1.server
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.