如何在 Heroku 服务器上部署 JPro-one JavaFx App?

时间:2021-04-11 15:35:58

标签: heroku javafx

我正在制作一个简单的 JPro-one 网络应用程序并尝试在 Heroku 部署。

我已经按照这些简单的步骤

  1. Heroku

    创建一个免费帐户
  2. 安装 Heroku Command Line Interface (CLI) 并运行:

    heroku login
    
  3. 结帐 HelloJPro 为:

    git clone https://github.com/JPro-one/HelloJPro
    cd HelloJPro
    
  4. 创建包含内容的 system.properties 文件:

    java.runtime.version=11
    
  5. 添加文件并提交为:

    git add .
    git commit -m "switch to java 11"
    
  6. heroku create

  7. 通过像这样设置 GRADLE_TASK 配置变量来覆盖默认任务:

    heroku config:set GRADLE_TASK="jproRestart"
    
  8. 部署到 Heroku 为:

    git push heroku master
    

它会产生很多错误

λ git push heroku master
Enumerating objects: 316, done.
Counting objects: 100% (316/316), done.
Delta compression using up to 2 threads
Compressing objects: 100% (145/145), done.
Writing objects: 100% (316/316), 239.41 KiB | 19.95 MiB/s, done.
Total 316 (delta 119), reused 312 (delta 118)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Building on the Heroku-20 stack
remote: -----> Determining which buildpack to use for this app
remote: -----> Gradle app detected
remote: -----> Installing JDK 11... done
remote: -----> Building Gradle app...
remote: -----> executing ./gradlew jproRestart
remote:        Downloading https://services.gradle.org/distributions/gradle-6.7.1-bin.zip
remote:        .........10%..........20%..........30%..........40%..........50%.........60%..........70%..........80%..........90%..........100%
remote:        To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/6.7.1/userguide/gradle_daemon.html.
remote:        Daemon will be stopped at the end of the build stopping after processing
remote:
remote:        > Configure project :
remote:        Project : => 'org.openjfx.gradle.javafx.test' Java module
remote:
remote:        > Task :compileJava
remote:        > Task :processResources
remote:        > Task :classes
remote:
remote:        > Task :jproStop
remote:        The Server is not running!
remote:
remote:        > Task :prepareBrowser
remote:        > Task :jproStartAsync
remote:        WARNING: An illegal reflective access operation has occurred
remote:        WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/tmp/codon/tmp/cache/.gradle/caches/modules-2/files-2.1/com.google.inject/guice/4.2.3/2ea992d6d7bdcac7a43111a95d182a4c42eb5ff7/guice-4.2.3.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
remote:        WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
remote:        WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
remote:        WARNING: All illegal access operations will be denied in a future release
remote:        [info] a.e.s.Slf4jLogger - Slf4jLogger started
remote:        [info] play.api.Play - Application started (Prod) (no global state)
remote:        [info] p.c.s.AkkaHttpServer - Enabling HTTP/2 on Akka HTTP server...
remote:        [info] p.c.s.AkkaHttpServer - Listening for HTTP on /0:0:0:0:0:0:0:0:8080
remote:        [info] c.jpro.activity - Starting the server
remote:        [info] c.j.i.s.Initializer$ -  *** Starting JPro: https://www.jpro.one/ ***
remote:        [info] c.j.i.s.Initializer$ - OS: Linux
remote:        [info] c.j.i.s.Initializer$ - JPro: 2020.1.3
remote:        [info] c.j.i.s.Initializer$ - Java version: 11.0.10
remote:        [info] c.j.i.s.Initializer$ - JVM: 11.0.10 Oracle Corporation
remote:        [info] c.j.i.s.Initializer$ - redirected OUT / ERR
remote:        [info] c.j.i.s.Initializer$ - installed SLF4JBridge
remote:        [info] c.j.i.s.MonocleInitializer$ - screen: null
remote:        Loading library prism_es2 from resource failed: java.lang.UnsatisfiedLinkError: /app/.openjfx/cache/15.0.1.1-jpro/libprism_es2.so: libGL.so.1: cannot open shared object file: No such file or directory
remote:        java.lang.UnsatisfiedLinkError: /app/.openjfx/cache/15.0.1.1-jpro/libprism_es2.so: libGL.so.1: cannot open shared object file: No such file or directory
remote:         at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
remote:         at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
remote:         at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
remote:         at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
remote:         at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
remote:         at java.base/java.lang.Runtime.load0(Runtime.java:768)
remote:         at java.base/java.lang.System.load(System.java:1837)
remote:         at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:214)
remote:         at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:194)
remote:         at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:135)
remote:         at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:53)
remote:         at com.sun.prism.es2.ES2Pipeline.lambda$static$0(ES2Pipeline.java:69)
remote:         at java.base/java.security.AccessController.doPrivileged(Native Method)
remote:         at com.sun.prism.es2.ES2Pipeline.<clinit>(ES2Pipeline.java:51)
remote:         at java.base/java.lang.Class.forName0(Native Method)
remote:         at java.base/java.lang.Class.forName(Class.java:315)
remote:         at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
remote:         at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:91)
remote:         at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
remote:         at java.base/java.lang.Thread.run(Thread.java:834)
remote:        [info] c.j.i.s.Initializer$ - finished init!
remote:        [info] c.j.i.s.Initializer$ - JavaFX version: 15.0.1.1-jpro+0-2021-01-03-124213
remote:        [info] c.j.i.c.m.ChartJSONImExporter - Nothing to import
remote:        [info] c.j.i.c.m.DynamicDataModel - Started Monitoring chart data...
remote:        Loading library jfxmedia from resource failed: java.lang.UnsatisfiedLinkError: /app/.openjfx/cache/15.0.1.1-jpro/libjfxmedia.so: libasound.so.2: cannot open shared object file: No such file or directory
remote:        java.lang.UnsatisfiedLinkError: /app/.openjfx/cache/15.0.1.1-jpro/libjfxmedia.so: libasound.so.2: cannot open shared object file: No such file or directory
remote:         at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
remote:         at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
remote:         at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
remote:         at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
remote:         at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
remote:         at java.base/java.lang.Runtime.load0(Runtime.java:768)
remote:         at java.base/java.lang.System.load(System.java:1837)
remote:         at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:214)
remote:         at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:194)
remote:         at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:135)
remote:         at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:63)
remote:         at com.sun.media.jfxmediaimpl.NativeMediaManager.lambda$new$0(NativeMediaManager.java:137)
remote:         at java.base/java.security.AccessController.doPrivileged(Native Method)
remote:         at com.sun.media.jfxmediaimpl.NativeMediaManager.<init>(NativeMediaManager.java:107)
remote:         at com.sun.media.jfxmediaimpl.NativeMediaManager$NativeMediaManagerInitializer.<clinit>(NativeMediaManager.java:78)
remote:         at com.sun.media.jfxmediaimpl.NativeMediaManager.getDefaultInstance(NativeMediaManager.java:90)
remote:         at com.sun.media.jfxmedia.MediaManager.getAllMediaPlayers(MediaManager.java:166)
remote:         at com.jpro.internal.stats.ServerInfo$.mediaPlayersSize(ServerInfo.scala:34)
remote:         at com.jpro.internal.chart.model.MonitoredData$.$anonfun$appsInfoSeries$4(MonitoredData.scala:36)
remote:         at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$getNewValues$2(DynamicDataModel.scala:64)
remote:         at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$getNewValues$2$adapted(DynamicDataModel.scala:63)
remote:         at scala.collection.TraversableLike$WithFilter.$anonfun$foreach$1(TraversableLike.scala:924)
remote:         at scala.collection.immutable.HashMap$HashMap1.foreach(HashMap.scala:394)
remote:         at scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:721)
remote:         at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:923)
remote:         at com.jpro.internal.chart.model.DynamicDataModel.getNewValues(DynamicDataModel.scala:63)
remote:         at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$startValueMonitoring$1(DynamicDataModel.scala:153)
remote:         at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent.$anonfun$runEvery$2(CoreTimeEvent.scala:124)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent.$anonfun$runAt$2(CoreTimeEvent.scala:74)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$4(CoreTimeEvent.scala:100)
remote:         at scala.collection.immutable.Set$Set1.foreach(Set.scala:141)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$3(CoreTimeEvent.scala:98)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$3$adapted(CoreTimeEvent.scala:91)
remote:         at simplefx.cores.standard.parts.CoreTypesBindable$BindableImpl.$anonfun$triggerOnChange$3(CoreTypesBindable.scala:208)
remote:         at simplefx.cores.standard.parts.CoreScheduler.runSchedulerImpl(CoreScheduler.scala:73)
remote:         at simplefx.cores.standard.parts.CoreScheduler.runSchedulerImpl$(CoreScheduler.scala:52)
remote:         at simplefx.cores.standard.Core.runSchedulerImpl(Core.scala:9)
remote:         at simplefx.cores.standard.parts.CoreScheduler.tryStartSchedulerStop(CoreScheduler.scala:44)
remote:         at simplefx.cores.standard.parts.CoreScheduler.tryStartSchedulerStop$(CoreScheduler.scala:42)
remote:         at simplefx.cores.standard.Core.tryStartSchedulerStop(Core.scala:9)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent$$anon$1.handle(CoreTimeEvent.scala:24)
remote:         at javafx.animation.AnimationTimer$AnimationTimerReceiver.lambda$handle$0(AnimationTimer.java:57)
remote:         at java.base/java.security.AccessController.doPrivileged(Native Method)
remote:         at javafx.animation.AnimationTimer$AnimationTimerReceiver.handle(AnimationTimer.java:56)
remote:         at com.sun.scenario.animation.AbstractMasterTimer.timePulseImpl(AbstractMasterTimer.java:357)
remote:         at com.sun.scenario.animation.AbstractMasterTimer$MainLoop.run(AbstractMasterTimer.java:267)
remote:         at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:569)
remote:         at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:553)
remote:         at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:546)
remote:         at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$12(QuantumToolkit.java:348)
remote:         at com.sun.glass.ui.monocle.RunnableProcessor.runLoop(RunnableProcessor.java:92)
remote:         at com.sun.glass.ui.monocle.RunnableProcessor.run(RunnableProcessor.java:51)
remote:         at java.base/java.lang.Thread.run(Thread.java:834)
remote:        java.lang.UnsatisfiedLinkError: no jfxmedia in java.library.path: [/usr/java/packages/lib, /usr/lib64, /lib64, /lib, /usr/lib]
remote:         at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2670)
remote:         at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
remote:         at java.base/java.lang.System.loadLibrary(System.java:1873)
remote:         at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:163)
remote:         at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:63)
remote:         at com.sun.media.jfxmediaimpl.NativeMediaManager.lambda$new$0(NativeMediaManager.java:137)
remote:         at java.base/java.security.AccessController.doPrivileged(Native Method)
remote:         at com.sun.media.jfxmediaimpl.NativeMediaManager.<init>(NativeMediaManager.java:107)
remote:         at com.sun.media.jfxmediaimpl.NativeMediaManager$NativeMediaManagerInitializer.<clinit>(NativeMediaManager.java:78)
remote:         at com.sun.media.jfxmediaimpl.NativeMediaManager.getDefaultInstance(NativeMediaManager.java:90)
remote:         at com.sun.media.jfxmedia.MediaManager.getAllMediaPlayers(MediaManager.java:166)
remote:         at com.jpro.internal.stats.ServerInfo$.mediaPlayersSize(ServerInfo.scala:34)
remote:         at com.jpro.internal.chart.model.MonitoredData$.$anonfun$appsInfoSeries$4(MonitoredData.scala:36)
remote:         at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$getNewValues$2(DynamicDataModel.scala:64)
remote:         at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$getNewValues$2$adapted(DynamicDataModel.scala:63)
remote:         at scala.collection.TraversableLike$WithFilter.$anonfun$foreach$1(TraversableLike.scala:924)
remote:         at scala.collection.immutable.HashMap$HashMap1.foreach(HashMap.scala:394)
remote:         at scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:721)
remote:         at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:923)
remote:         at com.jpro.internal.chart.model.DynamicDataModel.getNewValues(DynamicDataModel.scala:63)
remote:         at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$startValueMonitoring$1(DynamicDataModel.scala:153)
remote:         at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent.$anonfun$runEvery$2(CoreTimeEvent.scala:124)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent.$anonfun$runAt$2(CoreTimeEvent.scala:74)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$4(CoreTimeEvent.scala:100)
remote:         at scala.collection.immutable.Set$Set1.foreach(Set.scala:141)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$3(CoreTimeEvent.scala:98)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$3$adapted(CoreTimeEvent.scala:91)
remote:         at simplefx.cores.standard.parts.CoreTypesBindable$BindableImpl.$anonfun$triggerOnChange$3(CoreTypesBindable.scala:208)
remote:         at simplefx.cores.standard.parts.CoreScheduler.runSchedulerImpl(CoreScheduler.scala:73)
remote:         at simplefx.cores.standard.parts.CoreScheduler.runSchedulerImpl$(CoreScheduler.scala:52)
remote:         at simplefx.cores.standard.Core.runSchedulerImpl(Core.scala:9)
remote:         at simplefx.cores.standard.parts.CoreScheduler.tryStartSchedulerStop(CoreScheduler.scala:44)
remote:         at simplefx.cores.standard.parts.CoreScheduler.tryStartSchedulerStop$(CoreScheduler.scala:42)
remote:         at simplefx.cores.standard.Core.tryStartSchedulerStop(Core.scala:9)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent$$anon$1.handle(CoreTimeEvent.scala:24)
remote:         at javafx.animation.AnimationTimer$AnimationTimerReceiver.lambda$handle$0(AnimationTimer.java:57)
remote:         at java.base/java.security.AccessController.doPrivileged(Native Method)
remote:         at javafx.animation.AnimationTimer$AnimationTimerReceiver.handle(AnimationTimer.java:56)
remote:         at com.sun.scenario.animation.AbstractMasterTimer.timePulseImpl(AbstractMasterTimer.java:357)
remote:         at com.sun.scenario.animation.AbstractMasterTimer$MainLoop.run(AbstractMasterTimer.java:267)
remote:         at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:569)
remote:         at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:553)
remote:         at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:546)
remote:         at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$12(QuantumToolkit.java:348)
remote:         at com.sun.glass.ui.monocle.RunnableProcessor.runLoop(RunnableProcessor.java:92)
remote:         at com.sun.glass.ui.monocle.RunnableProcessor.run(RunnableProcessor.java:51)
remote:         at java.base/java.lang.Thread.run(Thread.java:834)
remote:        > Task :jproStart
remote:        > Task :jproRestart
remote:        java.lang.NoClassDefFoundError: Could not initialize class com.sun.media.jfxmediaimpl.NativeMediaManager$NativeMediaManagerInitializer
remote:         at com.sun.media.jfxmediaimpl.NativeMediaManager.getDefaultInstance(NativeMediaManager.java:90)
remote:         at com.sun.media.jfxmedia.MediaManager.getAllMediaPlayers(MediaManager.java:166)
remote:         at com.jpro.internal.stats.ServerInfo$.mediaPlayersSize(ServerInfo.scala:34)
remote:         at com.jpro.internal.chart.model.MonitoredData$.$anonfun$appsInfoSeries$4(MonitoredData.scala:36)
remote:         at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$getNewValues$2(DynamicDataModel.scala:64)
remote:         at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$getNewValues$2$adapted(DynamicDataModel.scala:63)
remote:         at scala.collection.TraversableLike$WithFilter.$anonfun$foreach$1(TraversableLike.scala:924)
remote:         at scala.collection.immutable.HashMap$HashMap1.foreach(HashMap.scala:394)
remote:         at scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:721)
remote:         at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:923)
remote:         at com.jpro.internal.chart.model.DynamicDataModel.getNewValues(DynamicDataModel.scala:63)
remote:         at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$startValueMonitoring$1(DynamicDataModel.scala:153)
remote:         at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent.$anonfun$runEvery$2(CoreTimeEvent.scala:124)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent.$anonfun$runAt$2(CoreTimeEvent.scala:74)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$4(CoreTimeEvent.scala:100)
remote:         at scala.collection.immutable.Set$Set1.foreach(Set.scala:141)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$3(CoreTimeEvent.scala:98)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$3$adapted(CoreTimeEvent.scala:91)
remote:         at simplefx.cores.standard.parts.CoreTypesBindable$BindableImpl.$anonfun$triggerOnChange$3(CoreTypesBindable.scala:208)
remote:         at simplefx.cores.standard.parts.CoreScheduler.runSchedulerImpl(CoreScheduler.scala:73)
remote:         at simplefx.cores.standard.parts.CoreScheduler.runSchedulerImpl$(CoreScheduler.scala:52)
remote:         at simplefx.cores.standard.Core.runSchedulerImpl(Core.scala:9)
remote:         at simplefx.cores.standard.parts.CoreScheduler.tryStartSchedulerStop(CoreScheduler.scala:44)
remote:         at simplefx.cores.standard.parts.CoreScheduler.tryStartSchedulerStop$(CoreScheduler.scala:42)
remote:         at simplefx.cores.standard.Core.tryStartSchedulerStop(Core.scala:9)
remote:         at simplefx.cores.standard.parts.CoreTimeEvent$$anon$1.handle(CoreTimeEvent.scala:24)
remote:         at javafx.animation.AnimationTimer$AnimationTimerReceiver.lambda$handle$0(AnimationTimer.java:57)
remote:         at java.base/java.security.AccessController.doPrivileged(Native Method)
remote:         at javafx.animation.AnimationTimer$AnimationTimerReceiver.handle(AnimationTimer.java:56)
remote:         at com.sun.scenario.animation.AbstractMasterTimer.timePulseImpl(AbstractMasterTimer.java:357)
remote:         at com.sun.scenario.animation.AbstractMasterTimer$MainLoop.run(AbstractMasterTimer.java:267)
remote:         at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:569)
remote:         at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:553)
remote:         at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:546)
remote:         at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$12(QuantumToolkit.java:348)
remote:         at com.sun.glass.ui.monocle.RunnableProcessor.runLoop(RunnableProcessor.java:92)
remote:         at com.sun.glass.ui.monocle.RunnableProcessor.run(RunnableProcessor.java:51)
remote:
remote:         at java.base/java.lang.Thread.run(Thread.java:834)
remote:        BUILD SUCCESSFUL in 54s
remote:        6 actionable tasks: 6 executed
remote: -----> Discovering process types
remote:        Procfile declares types -> (none)
remote:
remote: -----> Compressing...
remote:        Done: 61.4M
remote: -----> Launching...
remote:        Released v4
remote:        https://floating-beach-17551.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/floating-beach-17551.git
 * [new branch]      master -> master

注意:JRpo-one 建议下载一些库:https://www.jpro.one/?page=docs/current/2.7/PREPARING_LINUX_FOR_JPRO

也试试这个:

heroku run apt-get install xorg gtk2-engines libasound2 libgtk2.0-0
Running apt-get install xorg gtk2-engines libasound2 libgtk2.0-0 on ⬢ floating-beach-17551... up, run.9569 (Free)
Reading package lists... Done
Building dependency tree
Reading state information... Done
W: Not using locking for read only lock file /var/lib/dpkg/lock-frontend
W: Not using locking for read only lock file /var/lib/dpkg/lock
E: Unable to locate package xorg
E: Unable to locate package gtk2-engines
E: Unable to locate package libasound2
E: Unable to locate package libgtk2.0-0
E: Couldn't find any package by glob 'libgtk2.0-0'
E: Couldn't find any package by regex 'libgtk2.0-0'

但无论如何我都无法得到这些,感谢任何帮助。

0 个答案:

没有答案