使用javac在Heroku上运行java程序

使用javac在Heroku上运行java程序,java,ruby-on-rails,ruby,heroku,Java,Ruby On Rails,Ruby,Heroku,我在Heroku上有一个Ruby on Rails应用程序,需要将一些代码转储到.java文件中,并在Heroku终端内部运行javac file.java和java file。由于安装了Java,代码在本地运行良好,因此我想知道如何在Heroku上安装Java?您需要通过运行以下命令将Heroku/jvmbuildpack添加到您的应用程序中: $ heroku buildpacks:add -i 1 heroku/jvm 然后重新部署,并退出到javac 然而,这可能不是你想要完成你想做的

我在Heroku上有一个Ruby on Rails应用程序,需要将一些代码转储到.java文件中,并在Heroku终端内部运行
javac file.java
java file
。由于安装了Java,代码在本地运行良好,因此我想知道如何在Heroku上安装Java?

您需要通过运行以下命令将
Heroku/jvm
buildpack添加到您的应用程序中:

$ heroku buildpacks:add -i 1 heroku/jvm
然后重新部署,并退出到
javac

然而,这可能不是你想要完成你想做的事情的方式。我认为最好在构建阶段运行
javac
(当您运行
gitpush
时),这样您的已编译Java
.class
文件就可以在应用程序预编译时使用

为此,您可以将
javac
调用放入
assets:precompile
Rake任务中,如下所示:

task "assets:precompile" do
  `javac File.java`
end

然后它将作为构建的一部分运行。

您需要通过运行以下命令将
heroku/jvm
构建包添加到应用程序中:

$ heroku buildpacks:add -i 1 heroku/jvm
然后重新部署,并退出到
javac

然而,这可能不是你想要完成你想做的事情的方式。我认为最好在构建阶段运行
javac
(当您运行
gitpush
时),这样您的已编译Java
.class
文件就可以在应用程序预编译时使用

为此,您可以将
javac
调用放入
assets:precompile
Rake任务中,如下所示:

task "assets:precompile" do
  `javac File.java`
end

然后它将作为构建的一部分运行。

请记住,Heroku有一个“epheremal”文件系统,这意味着他们将间歇性地将文件系统重置为git repo的最后一次提交。你可以使用<代码> /TMP < /代码>目录来在HeloCU机器上写入,但是不要把它们看作是持久文件。记住Helku有一个“EffelMaar”文件系统,意味着它们会间歇性地将文件系统重置为Git RePo的最后提交。你可以使用<代码> /TMP < /Cord>目录来写HeloCU机器,但是不要把它们看作是持久文件。