我有一个spring-boot web
应用程序分配jar
文件。 启动应用程序的代码如下:
<span style="color:#393318"><code><span style="color:#101094">private</span> <span style="color:#101094">static</span> <span style="color:#2b91af">ConfigurableApplicationContext</span><span style="color:#303336"> ctx</span><span style="color:#303336">;</span>
<span style="color:#101094">public</span> <span style="color:#101094">static</span> <span style="color:#101094">void</span><span style="color:#303336"> main</span><span style="color:#303336">(</span><span style="color:#2b91af">String</span><span style="color:#303336">[]</span><span style="color:#303336"> args</span><span style="color:#303336">){</span>
<span style="color:#101094">if</span><span style="color:#303336">(</span><span style="color:#303336">ctx </span><span style="color:#303336">==</span> <span style="color:#101094">null</span><span style="color:#303336">)</span> <span style="color:#303336">{</span><span style="color:#303336">
ctx </span><span style="color:#303336">=</span> <span style="color:#2b91af">SpringApplication</span><span style="color:#303336">.</span><span style="color:#303336">run</span><span style="color:#303336">(</span><span style="color:#2b91af">MyApplication</span><span style="color:#303336">.</span><span style="color:#101094">class</span><span style="color:#303336">,</span><span style="color:#303336"> args</span><span style="color:#303336">);</span>
<span style="color:#303336">}</span>
<span style="color:#101094">try</span> <span style="color:#303336">{</span><span style="color:#303336">
openHomePage</span><span style="color:#303336">(</span><span style="color:#7d2727">"http://localhost:8090/"</span><span style="color:#303336">);</span>
<span style="color:#303336">}</span><span style="color:#101094">catch</span><span style="color:#303336">(</span><span style="color:#2b91af">Exception</span><span style="color:#303336"> e</span><span style="color:#303336">)</span> <span style="color:#303336">{</span><span style="color:#303336">
logger</span><span style="color:#303336">.</span><span style="color:#303336">error</span><span style="color:#303336">(</span><span style="color:#7d2727">"Error occured starting the application: "</span><span style="color:#303336">,</span><span style="color:#303336"> e</span><span style="color:#303336">);</span><span style="color:#303336">
ctx</span><span style="color:#303336">.</span><span style="color:#303336">close</span><span style="color:#303336">();</span>
<span style="color:#303336">}</span>
<span style="color:#303336">}</span>
<span style="color:#101094">private</span> <span style="color:#101094">static</span> <span style="color:#101094">void</span><span style="color:#303336"> openHomePage</span><span style="color:#303336">(</span><span style="color:#2b91af">String</span><span style="color:#303336"> url</span><span style="color:#303336">)</span> <span style="color:#101094">throws</span> <span style="color:#2b91af">IOException</span><span style="color:#303336">,</span> <span style="color:#2b91af">URISyntaxException</span> <span style="color:#303336">{</span>
<span style="color:#101094">if</span><span style="color:#303336">(</span><span style="color:#2b91af">Desktop</span><span style="color:#303336">.</span><span style="color:#303336">isDesktopSupported</span><span style="color:#303336">())</span> <span style="color:#303336">{</span><span style="color:#303336">
URI homePage </span><span style="color:#303336">=</span> <span style="color:#101094">new</span><span style="color:#303336"> URI</span><span style="color:#303336">(</span><span style="color:#303336">url</span><span style="color:#303336">);</span>
<span style="color:#2b91af">Desktop</span><span style="color:#303336">.</span><span style="color:#303336">getDesktop</span><span style="color:#303336">().</span><span style="color:#303336">browse</span><span style="color:#303336">(</span><span style="color:#303336">homePage</span><span style="color:#303336">);</span>
<span style="color:#303336">}</span><span style="color:#101094">else</span> <span style="color:#303336">{</span>
<span style="color:#2b91af">Runtime</span><span style="color:#303336"> runtime </span><span style="color:#303336">=</span> <span style="color:#2b91af">Runtime</span><span style="color:#303336">.</span><span style="color:#303336">getRuntime</span><span style="color:#303336">();</span><span style="color:#303336">
runtime</span><span style="color:#303336">.</span><span style="color:#303336">exec</span><span style="color:#303336">(</span><span style="color:#101094">new</span> <span style="color:#2b91af">String</span><span style="color:#303336">[]{</span><span style="color:#7d2727">"cmd"</span><span style="color:#303336">,</span> <span style="color:#7d2727">"/c"</span><span style="color:#303336">,</span><span style="color:#7d2727">"start chrome "</span> <span style="color:#303336">+</span><span style="color:#303336"> url</span><span style="color:#303336">});</span>
<span style="color:#303336">}</span>
<span style="color:#303336">}</span></code></span>
打开主页Chrome
当我运行它Eclipse
通过双击jar
文件。
问题是当我从启动应用程序jar
文件并关闭浏览器选项卡,应用程序继续运行JVM
我必须杀了它task manager
手动是烦人的。 如果我不杀死JVM
然后再双击jar文件,应用程序不会自动启动,第一次,我必须手动打开一个新的浏览器选项卡和类型http://localhost:8090 /为了使用该应用程序。
有可能杀死每个进程在用户关闭浏览器选项卡,这样当他们下次点击jar文件需要使用应用程序,自动将打开一个新的浏览器选项卡吗?