簡體   English   中英

Cloud Foundry Java buildpack-Java:找不到命令

[英]Cloud Foundry java buildpack - java: command not found

雲鑄造的新手,使用java buildpack推送Java應用程序的zip發行版。 它正確地檢測到啟動腳本,但是當啟動腳本到達需要啟動jvm的地步時,出現以下錯誤:

bash:java:找不到命令

顯然,在執行腳本的過程中,“ java”不在外殼程序的路徑上,而且我在任何地方都找不到JAVA_HOME定義。

用於啟動Java應用程序的路徑是什么? 它記錄在哪里?

虛假警報

非常感謝@DanielMikusa指出,即使在使用的很老的buildpack版本中,也確實設置了JAVA_HOME。 這沒東西看。

編輯#1

我已經發現啟動腳本啟動時,在$PWD/.buildpack-java/oracle_jre有一個jre。 但是,這不是我期望用來為JAVA_HOME的路徑指定的,可以嗎? 看來此位置完全取決於java buildpack的當前實現。 看起來jre的bin文件夾應該在啟動腳本的進程路徑中,或者應該在運行啟動腳本之前建立環境變量或其他配置,以便我可以使用該值查找java可執行文件。

編輯#2

以下是cf push操作期間的輸出:

PS E:\dev\hoobajoob\myproject\build\distributions> cf push -p .\my-service-1.0.0.zip my-service
Using manifest file E:\dev\hoobajoob\myproject\build\distributions\manifest.yml

Creating app my-service in org DEV / space dev as chefhoobajoob@github.com...
OK

Creating route my-service.cflab.dctmlabs.com...
OK

Binding my-service.cflab.dctmlabs.com to my-service...
OK

Uploading my-service...
Uploading app files from: C:\Users\hoobajoob\AppData\Local\Temp\unzipped-app384867239
Uploading 9.7M, 9390 files
Done uploading
OK

Starting app my-service in org DEV / space dev as chefhoobajoob@github.com...
Downloading oracle_buildpack_151...
Downloading binary_buildpack...
Downloading go_buildpack...
Downloading python_buildpack...
Downloading java-buildpack-offline-v3-19-2...
Downloaded java-buildpack-offline-v3-19-2
Downloading java-buildpack-offline-4-7...
...<more downloads>

Creating container
Successfully created container
Downloading app package...
Downloaded app package (53.1M)
Staging...
-----> Java Buildpack Version: v3.5.1 (offline) | https://github.com/cloudfoundry/java-buildpack.git#3abc3db
-----> Downloading Oracle JRE 1.8.0_112 from http://127.0.0.1/oracle-jre/trusty/x86_64/jre-8u112-linux-x64.tar.gz (found
 in cache)
       Expanding Oracle JRE to .java-buildpack/oracle_jre (2.3s)
-----> Downloading Open JDK Like Memory Calculator 2.0.1_RELEASE from https://download.run.pivotal.io/memory-calculator/
trusty/x86_64/memory-calculator-2.0.1_RELEASE.tar.gz (found in cache)
       Memory Settings: -Xms2304M -XX:MetaspaceSize=314572K -Xss1M -Xmx2304M -XX:MaxMetaspaceSize=314572K
-----> Downloading Spring Auto Reconfiguration 1.10.0_RELEASE from https://download.run.pivotal.io/auto-reconfiguration/
auto-reconfiguration-1.10.0_RELEASE.jar (found in cache)
Exit status 0
Staging complete
Uploading droplet, build artifacts cache...
Uploading droplet...
Uploading build artifacts cache...
Uploaded build artifacts cache (108B)
Uploaded droplet (120.5M)
Uploading complete
Destroying container
Successfully destroyed container

0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
1 of 1 instances running

App started


OK
App my-service was started using this command `CALCULATED_MEMORY=$($PWD/.java-buildpack/oracle_jre/bin/java-buildpack-memory-calculator-2.0.1_RELEASE -memorySizes=metaspace:64m.. -memoryWeights=heap:75,metaspace:10,native:10,stack:5 -memoryInitials=heap:100%,metaspace:100% -totMemory=$MEMORY_LIMIT) &&  JAVA_HOME=$PWD/.java-buildpack/oracle_jre JAVA_OPTS="-Djava.io.tmpdir=$TMPDIR -XX:OnOutOfMemoryError=$PWD/.java-buildpack/oracle_jre/bin/killjava.sh $CALCULATED_MEMORY" exec $PWD/my-service-1.0.0/bin/launch`

寫出以上評論,以防其他人遇到此問題。

  1. 我們回顧了暫存的全部輸出以及Java buildpack生成的啟動命令。
  2. 從Java buildpack生成的啟動命令可以看出,設置JAVA_HOME是啟動命令的職責。
  3. 如果您依靠Java buildpack為dist-zip樣式的應用程序創建啟動命令,它將“做正確的事”,並向啟動命令添加具有正確路徑的JAVA_HOME環境變量
  4. 如果需要創建自定義的啟動命令,則有責任正確設置JAVA_HOME。
  5. 如果將cf ssh到由Java buildpack啟動的應用程序中,則設置JAVA_HOME是您的責任。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM