java - 如何在没有heroku CLI的情况下获取数据库url等

标签 java postgresql heroku jdbc

我在 Java 应用程序中使用 Heroku PostgreSQL,并像这样获取数据库 url、用户名、数据库名称和密码

Properties props = new Properties();
props.setProperty("sslmode","require");
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("heroku config:get DATABASE_URL -a myMegaCoolApplication");
BufferedReader br = new BufferedReader(new InputStreamReader(pr.getInputStream()));
Pattern p = Pattern.compile("(postgres)://([^:]+):([^@]+)@(.*)");
Matcher m = p.matcher(br.readLine());
m.find();
props.setProperty("user",m.group(2));
props.setProperty("password",m.group(3));
conn = DriverManager.getConnection("jdbc:"+m.group(1)+"ql://"+m.group(4),props);

这里需要在本地计算机上安装 heroku 工具。我可以不用它吗?目标是能够单独发布 Java jar 文件,而不需要用户安装 heroku

最佳答案

您可以向 Heroku Platform API 发出 HTTP 请求检索应用程序的配置变量。

执行此操作的便捷方法是使用 heroku.jar客户端库。例如

HerokuAPI api = new HerokuAPI(apiKey);
Map<String, String> config = api.listConfig("myExistingApp");
for (Map.Entry<String, String> var : config.entrySet()) {
    System.out.println(var.getKey() + "=" + var.getValue());
}

关于java - 如何在没有heroku CLI的情况下获取数据库url等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41624335/

相关文章:

java - 读取类的 jar 版本

java - 为什么 Math.pow(int,int) 比我天真的实现慢?

java - 如何在 Java 应用程序中使用 Akka Actors?

git - 如何使用Docker在Heroku Review App中的PATH上获取GIT?

ruby-on-rails - 如何配置裸域名以使用 Heroku 的 SSL 端点?

java - 为什么第一次运行总是慢得多?

postgresql - 在postgresql中实现自定义比较

ruby-on-rails - Rails -- 从 Rails 控制台发送所有未接受的邀请

mysql - SQL SELECT 最后一个条目没有限制

javascript - 将 javascript 应用程序部署到 heroku 后,该脚本不起作用