我一直在毫无问题地访问H2数据库,直到我将Ubuntu 16.04 LTS升级到KUbuntu 18.04(这对我来说是个灾难-不是升级,这对我来说是一个灾难)。现在,由于我不了解的原因,H2无法打开浏览器窗口。
我跑步:
java -jar h2-1.3.174.jar -url "jdbc:h2:~/hcs/application/demo/dcdemo;DATABASE_TO_UPPER=FALSE" -user SA
这曾经在我的浏览器中打开一个窗口。现在它就坐在那儿。使用lsof -p <h2_pid>
,我可以看到它正在监听的端口,并手动将Web浏览器定向到该端口。通常类似于localhost:34029
。然后它可以正常工作。
更有趣的是,如果我刚跑步:
java -jar h2-1.3.174.jar
我收到一条错误消息:
Failed to start a browser to open the URL http://127.0.1.1:44177: Browser detection failed and system property h2.browser not set
我尝试将“ h2.browser”设置为环境变量,但这无效。
在文档中翻阅并搜索Google,我找不到能正确指向我的浏览器的H2-Chromium版本69.0.3497.81(官方内部版本)构建于Ubuntu上,在Ubuntu 18.04(64位)上运行在/ usr / bin / chromium-browser中。
如何使H2指向正确的方向,所以我不必每隔几个月就挖出lsof?
答案 0 :(得分:1)
文档没有说明它是如何工作的,它困扰了我很多,以至于我去阅读了H2源代码。有几种设置浏览器的方法:
java -Dh2.browser=/usr/bin/chromium-browser -jar h2-1.3.174.jar
export BROWSER=/usr/bin/chromium-browser
在Windows上,默认情况下,它将尝试设置为处理URL(rundll32)的任何内容。在MAC上,它将尝试Safari。在其他所有版本(通常是Linux)上,它将尝试运行以下命令:
"chromium", "google-chrome", "firefox", "mozilla-firefox",
"mozilla", "konqueror", "netscape", "opera", "midori"
如果所有这些都失败,那么它将打印错误消息:
Browser detection failed and system property h2.browser not set
由于我的(KUbuntu)Linux安装使用chromium-browser
,因此失败。