最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

把Java程序轉(zhuǎn)換成exe,可直接運行的實現(xiàn)

 更新時間:2020年09月30日 15:37:03   作者:棒棒的胖胖  
這篇文章主要介紹了把Java程序轉(zhuǎn)換成exe,可直接運行的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

最近,項目不是很趕,突發(fā)奇想,打算寫一個定時提醒的軟件,設(shè)想即在某些指定的時刻,彈出彈窗,顯示一些設(shè)定的話,5s之后自動關(guān)閉。

定時提示這一部分很基礎(chǔ),定時采用spring的@schedule的cron來設(shè)定,彈窗用Java Awt 來解決,不再贅述。項目寫完之后,用maven打成jar包,用exe4j 把jar包轉(zhuǎn)換成電腦 可執(zhí)行文件exe。記錄一下遇到的問題。

1、在springboot工程中運行程序,會提示一個java.awt.HeadlessException的錯誤,由于是全部解決完之后才記錄,并沒有上截圖。

解決方法:在新建Frame或者JFrame之前,添加代碼 設(shè)置系統(tǒng)屬性。

System.setProperty("java.awt.headless", "false");

2、如何讓彈窗顯示5s之后關(guān)閉。

解決方法:5s可以用線程的sleep方法,但是關(guān)閉彈窗,我之前采用的是System.exit(0)。 這個雖然可以關(guān)閉,但是是強行關(guān)閉整個Java運行程序,導(dǎo)致程序不能繼續(xù)運行,因此換成如下:

try {
  Thread.sleep(5000);
  frame.setVisible(false);//5s自動關(guān)閉
 } catch (InterruptedException e1) {
  e1.printStackTrace();
  System.exit(0);
 }

3、exe4j生成的exe運行報錯,提示NoClassDefException,找不到主類。

解決方法:在生成exe的第五步,選擇主類不要選擇項目的主類,而是選擇

org.springframework.boot.loader.PropertiesLauncher。。

即可

4、exe運行,提示沒有jre環(huán)境。(在沒有安裝jre的機器上運行)

解決的方法:需要把生成的exe和安裝好的jre文件,打包發(fā)給別人。然后保證exe必須和jre在一個文件下,正常運行

補充知識:解決子線程不共有父線程的請求上下文環(huán)境

正常的開啟子線程的時候,存在一個問題。

即 子線程并不具有父線程的請求上下文環(huán)境,比如說session,子線程在請求服務(wù)器的時候是沒有session的,于是服務(wù)器隨機生成一個session賦給他,這就導(dǎo)致一個問題。比如說微服務(wù)開發(fā)的時候,需要在子線程通過feign調(diào)用其他服務(wù)的接口,而這些被調(diào)用的接口一般都需要驗證是否具有權(quán)限,此時,通過子線程訪問接口就會拋出401或者403的權(quán)限錯誤。

解決思路很簡單,即開啟子線程的時候,確保子線程共有父線程的請求上下文環(huán)境。只需要在啟動線程之前加上如下代碼即可。

 
/**
 * 生成日報表
 * @param日期
 * */
 @POST
 @Path(value = "/generateDayreport")
 @Operation(code = 301,desc = "生成")
 public String lookDayreport(@RequestBody String req) throws BusinessAccessException{
 ExecutorService threadPool = Executors.newFixedThreadPool(5);
 Map<String, String> map = new HashMap<>();
 JSONObject jsonObject = JSONObject.parseObject(req);
 String date = jsonObject.getString("date");
 RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes();
 System.out.println("=ui==="+requestAttributes.getSessionId());
 RequestContextHolder.setRequestAttributes(requestAttributes, true);//子線程繼承主線程的上下文
 try {
  service.insertDayreport(date, "1", "true");
  map.put("code", "1");
 } catch (Exception e) {
  // TODO: handle exception
  e.printStackTrace();
  map.put("code", "2");
 }
 GenerateDayReport generateDayReport = new GenerateDayReport(date);
 threadPool.execute(generateDayReport);
 threadPool.shutdown();
 return JSONObject.toJSONString(map);
 }

GenerateDayReport是實現(xiàn)Runable接口的類

以上這篇把Java程序轉(zhuǎn)換成exe,可直接運行的實現(xiàn)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MyBatis圖文并茂講解注解開發(fā)一對多查詢

    MyBatis圖文并茂講解注解開發(fā)一對多查詢

    這篇文章主要介紹了SpringBoot中Mybatis注解一對多查詢的實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Springboot整合Redis最簡單例子分享

    Springboot整合Redis最簡單例子分享

    這篇文章主要介紹了Springboot整合Redis最簡單例子分享,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • java不用循環(huán)語句打印數(shù)組元素的實例

    java不用循環(huán)語句打印數(shù)組元素的實例

    下面小編就為大家?guī)硪黄猨ava不用循環(huán)語句打印數(shù)組元素的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 100行java寫的微信跳一跳輔助程序

    100行java寫的微信跳一跳輔助程序

    本篇文章給大家分享了用java寫的一個微信跳一跳輔助腳本程序,有興趣的朋友參考學(xué)習(xí)下。
    2018-01-01
  • Java進行Appium自動化測試的實現(xiàn)

    Java進行Appium自動化測試的實現(xiàn)

    這篇文章主要介紹了Java進行Appium自動化測試的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 前端dist包放到后端springboot項目下一起打包圖文教程

    前端dist包放到后端springboot項目下一起打包圖文教程

    這篇文章主要介紹了前端dist包放到后端springboot項目下一起打包的相關(guān)資料,具體步驟包括前端打包、將前端文件復(fù)制到后端項目的static目錄、后端打包、驗證部署成功等,需要的朋友可以參考下
    2025-01-01
  • 微服務(wù)?Spring?Boot?整合?Redis?BitMap?實現(xiàn)?簽到與統(tǒng)計功能

    微服務(wù)?Spring?Boot?整合?Redis?BitMap?實現(xiàn)?簽到與統(tǒng)計功能

    這篇文章主要介紹了微服務(wù)?Spring?Boot?整合?Redis?BitMap?實現(xiàn)?簽到與統(tǒng)計功能,文章簡單介紹了Redis BitMap 基本用法結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • spring mvc中@PathVariable / 帶斜杠方式獲取

    spring mvc中@PathVariable / 帶斜杠方式獲取

    這篇文章主要介紹了spring mvc中@PathVariable / 帶斜杠方式獲取,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • IDEA無法識別相關(guān)module模塊問題的解決過程

    IDEA無法識別相關(guān)module模塊問題的解決過程

    這篇文章主要給大家介紹了關(guān)于IDEA無法識別相關(guān)module模塊問題的解決過程,文中通過圖文介紹的非常詳細,對大家學(xué)習(xí)或者使用IDEA具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • 通過實例了解java spring使用構(gòu)造器注入的原因

    通過實例了解java spring使用構(gòu)造器注入的原因

    這篇文章主要介紹了通過實例了解spring使用構(gòu)造器注入的原因,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12

最新評論

昌江| 岳阳县| 万州区| 加查县| 崇义县| 方正县| 铁岭市| 应城市| 独山县| 福鼎市| 兴海县| 汽车| 确山县| 浦城县| 浑源县| 资中县| 喜德县| 临漳县| 开阳县| 左贡县| 宁蒗| 宜丰县| 天峨县| 屯留县| 象州县| 永春县| 许昌市| 桓台县| 砀山县| 霍林郭勒市| 息烽县| 敦化市| 张家港市| 长泰县| 中江县| 台安县| 卓尼县| 辰溪县| 达日县| 阜新市| 凉城县|