1. 程式人生 > >maven打jar包,用doc命令執行jar遇到的各種問題(記錄備忘)

maven打jar包,用doc命令執行jar遇到的各種問題(記錄備忘)

事件起因:

公司有個業務需求,兩個系統搞對接,雙方採用中間庫的方式進行資料互動,設立了中間表,對方採用的oracle,我方採用的sqlserver,我負責寫個程式定時從oracle的中間表中讀取資料寫入到公司的sqlserver中,我採用spring+mybatis+quartz+atomikos框架完成了一個配置多資料來源定時從oracle讀取資料到sqlserver的專案,該專案沒有頁面,最初的版本是tomcat啟動本程式,但是由於領導要求程式不在tomcat下執行,要求把專案改成exe型別不需要任何環境安裝直接點選可執行!

最先聽到這個需求的時候有點蒙,之前沒怎麼用java寫桌面程式,後來看了網上的資料,知道要想把專案打成可執行jar包,再來通過exe4j轉成exe,知道怎麼做之後,我就開始對我的maven專案進行打jar包,然後通過doc命令執行jar包進行測試,結果就遇到了各種問題:

問題一:

maven專案打jar包後,沒有指定mian函式入口,spring的專案脫離tomcat啟動可以通過spring的上下文來獲取例項呼叫方法,

ApplicationContext context = new ClassPathXmlApplicationContext("spring-mybatis.xml");  
Scheduler scheduler = (Scheduler) context.getBean("testSchedulerFactoryBean");

我們要寫一個含有main方法的類來啟動spring容器,寫好後在maven打包的外掛中指定main函式入口,在mainClass中填入類全名


    問題二:

maven專案打jar包後,把mapper層的xml給漏掉了,導致啟動的時候對映mapper例項失敗



這裡我們打包的時候要把xml檔案打包完全,要在pom.xml中加入



問題三:maven打jar包後,外部引用的jar包沒打進去,由於我在外部引入的oracle和sqlserver的資料庫驅動jar包,導致maven打包的時候沒有包這兩個jar包包含進去


解決辦法:由於時間倉促,我採用了比較粗暴的方法,直接把這兩個jar包拷貝到maven打包後的lib包下面去了,



但是啟動的時候還是報錯,說找不到class類檔案,這裡我忽略了一個問題maven打包後會有一個MANIFEST.MF的檔案,裡面有各種配置資訊,jar啟動的時候就是讀裡面的配置資訊來啟動的,



classPath裡面要把外部的jar包路勁資訊加進去,不然jar啟動的時候就讀不到驅動,就會失敗


加入之後啟動jar包


千辛萬苦終於啟動了,至此maven專案通過jar包啟動任務來動態讀寫資料庫操作就成功了,接下來就是用exe4j來把jar包轉exe了,後面的文章會繼續介紹,現在記錄備忘,希望會對大家有所幫助!

相關推薦

mavenjardoc命令執行jar遇到的各種問題記錄

事件起因: 公司有個業務需求,兩個系統搞對接,雙方採用中間庫的方式進行資料互動,設立了中間表,對方採用的oracle,我方採用的sqlserver,我負責寫個程式定時從oracle的中間表中讀取資料寫入到公司的sqlserver中,我採用spring+mybatis+qua

java程式在eclipse上jarLinux上成功執行

、eclipse下的java專案結構如下圖所示: 2、manifest.mf檔案定義如下所示  注意: ① manifest.mf檔案最後一行必須是一個空行。 ② lib/dom4j-1.6.1.jar和lib/jaxen-1.1-beta-7.jar之

在Eclipse中如何將spring boot專案成的jar並且雙擊執行cmd 執行jar設定開機啟動

1、如何在eclipse中將spring boot專案打成jar包 1.右擊專案,選擇Run As - Maven clean 2.右擊專案,選擇Run As - Maven install 3.成功後 會在專案的target資料夾下生成jar包 2、直接雙擊執行cm

java專案中利用mavenwar其pom配置

<properties> <jdk.version>1.8</jdk.version> <spring.version>4.1.6.RELEASE</spring.version> <

mavenwar包括其依賴

釋出的第一件要做的事情是打包。 在Eclipse左側右擊專案,Debug As -> Debug Configurations -> 雙擊Maven Build 然後看彈出框的右側 右側的Name隨便填寫一個名字, Basedirectory 則選擇專案路徑 Goals是

spring boot 專案mavenwar部署Tomcat啟動時spring boot未載入專案訪問404

寫了個restful風格的spring boot專案,maven打成war包後部署Tomcat後,啟動頁面沒有看到spring boot載入的資訊,即控制檯沒有打印出那個大大的spring boot 字串,這是spring boot沒有被容器載入,修改方法如下:@Spring

如何使用Eclipse將Java工程打包成Jar並用bat檔案啟動Jar

作者:翁鬆秀 如何使用Eclipse將Java工程打包成Jar包,並用bat檔案啟動Jar包 如何使用Eclipse將Java工程打包成Jar包,並用bat檔案啟動Jar包 一、用Eclipse將Java工程打包成J

maven專案依賴本地jar時編譯生成可執行jar方法

maven專案需要本地jar包時,在根目錄新建lib目錄,將jar包拷貝到lib目錄並且新增到build path此時直接打可執行jar包會出現編譯報錯、啟動時缺少jar包等問題解決方案:    1.增加編譯外掛, 解決Failed to execute goal org.a

深入Jar:Gradle構建可執行jar與訪問jar中資料夾與檔案

## 前言 Java的跨平臺功能聽起來很誘人可口,號稱“Write Once,Run Everywhere”,實際上是“Run Once,Debug Everywhere”... 在實際開發過程中還是會遇到各種各樣的坑的,剛剛解決了一系列問題,特地寫個文章總結一下。 ## 使用Gradle構建Jar包 感謝

將java專案使用mavenjar可在doc視窗直接執行

1、在pom.xml中加上這段程式碼 <build><plugins> <!-- 生成可執行jar   --><plugin>     <groupId>org.apache.maven.plugins</g

mavenwar的過程中了哪些外掛呢?

一、maven生命週期 http://ifeve.com/introduction-to-the-lifecycle/   https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html &nbs

Springboot中引入本地jar並通過maven把專案成可執行jar

       最近把以往的老專案用SpringBoot進行了重構,老專案中有部分本地依賴包不是放在maven庫裡的,是本地開發直接引入,需要在mvn package的時候把本地依賴jar也打進可執行包中。 這種通用問題,在網上找了一圈卻沒發現什麼好的解決辦

Mavenwar新增本地jar

1、在專案根目錄中新建lib資料夾,新增jar包 2.在pom.xml檔案中新增dependency <dependency>   <groupId>com.oracle</groupId>   <artifactId>ojdbc8</art

Maven專案連同其依賴jar一同jar執行入口類

需求: 在我本地的電腦上存在一個maven工程,在pom檔案中依賴了一些第三方jar包。現在需要把工程打成jar包,然後放到linux伺服器中執行。 因此i,現在就需要在打jar包的同時既要指定執行

mavenjar設定入口類

<build> <plugins> <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compi

ant自動增量全量jar

     build.xml:<?xml version="1.0" encoding="UTF-8" ?> <project name="eShop" default="release" basedir="."> <!-- .代表當前專案所

maven eclipse:eclipse命令執行專案自動引入了spring-1.2.6 jar如何去掉

<dependency> <groupId>org.codehaus.xfire</groupId> <artifactId>xfire-all&l

Maven 打包Resource下有jar整個工程打包成war解壓縮war發現原先Resource下jar不開解決辦法

Maven 工具使用 問題描述: Maven 打包,Resource下有jar包,整個工程打包成war包,解壓縮war包發現原先Resource下jar包打不開 出現如下資訊: 解決辦法: maven 打包 修改pom.xml 主體思想,打包的時候不壓縮Resou

IntelliJ IDEA java項目導入jarjar

選項 可能 version make set 最好 tar project 沒有 一、導入 1、java項目在沒有導入該jar包之前,如圖: 2、點擊 File -> Project Structure(快捷鍵 Ctrl + Alt + Shift + s),

javaWarwarjar的區別

module app clas 完全 doc rip 折扣 通用 enter 以最終客戶的角度來看,JAR文件就是一種封裝,他們不需要知道jar文件中有多少個.class文件,每個文件中的功能與作用,同樣可以得到他們希望的結果。除jar以外對於J2EE來說還有war和ear