在春天结束JVM当浏览器选项卡关闭启动应用程序

本文讨论了一个问题,即当用户通过浏览器选项卡启动一个Java应用程序,并在使用后关闭选项卡时,应用程序继续在后台运行。开发者希望在用户关闭选项卡时能自动终止应用程序,以便用户再次双击jar文件时可以自动重新启动。目前需要手动关闭应用程序进程,然后才能重新启动。寻求解决方案来实现这一自动化流程。
摘要由CSDN通过智能技术生成

我有一个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文件需要使用应用程序,自动将打开一个新的浏览器选项卡吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值