Java封裝jar包對外提供可執行文件

編寫Main方法,封裝jar包

一、編寫Main方法   html

import java.util.Date;

/**
 * 描述 :
 *
 * @Author : zhanghao
 * @Time  : 2019/10/28 14:08
 */
public class ***MainTest {
    public static void main(String[] args) {
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring-config.xml");
        ***API ***ServiceAPI= (***ServiceAPI) applicationContext.getBean("****Impl");
        System.out.println("定時任務執行結果_"+ DateUtils.format(new Date())+":"+***ServiceAPI.***Process());
    }
}

  

 

具體項目結構以下:java

 

 

 

 

二、經過idea能夠快速進行Main方法的jar包封裝,具體步驟能夠參考spring

    https://blog.csdn.net/yuang12345/article/details/90293013apache

    http://www.javashuo.com/article/p-qvmbcsof-no.htmlapi

   http://www.javashuo.com/article/p-zaptcznp-cq.htmlapp

三、編譯完成後 執行 java -jar  ****MainTest   便可運行相關方法maven

 

估計大機率,會執行報錯(偷笑)ide

錯誤一:不識別java命令工具

檢查是否正確配置了java的環境變量url

 

錯誤二:***Test.jar中沒有主清單屬性

使用解壓工具打開jar包,找到META-INF-->MANIFEST.MF->使用記事本打開,在第二行添加

Main-Class: main方法的路徑
保存後從新執行命令便可

 

 

錯誤三:執行過程當中報 Invalid signature file digest for Manifest main attributes

將打好包的jar文件中的 META-INF/*.RSA META-INF/*.DSA META-INF/*.SF 文件刪掉

參考連接:http://www.javashuo.com/article/p-drlpeiio-dg.html

                  https://blog.csdn.net/dai451954706/article/details/50086295

 

錯誤四:執行過程當中報 org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/context]

或者 其它的schema錯誤

因爲沒有配置META-INF/spring.handlers和META-INF/spring.schemas,因此若是工程中依賴了Spring的多個依賴,在打包時後面的會把前面的覆蓋,使得這兩個文件中永遠只保存最後一個spring依賴的schema和handler。

方法一:使用maven的打包插件

 

  

<plugin>  
    <groupId>org.apache.maven.plugins</groupId>  
    <artifactId>maven-shade-plugin</artifactId>  
    <version> 1.7.1</version>  
    <executions>  
        <execution>  
            <phase>package</phase>  
            <goals>  
                <goal>shade</goal>  
            </goals>  
            <configuration>  
                <transformers>  
                    <transformer  
                        implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">  
                        <resource>META-INF/spring.handlers</resource>  
                    </transformer>  
                    <transformer  
                        implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">  
                        <resource>META-INF/spring.schemas</resource>  
                    </transformer>  
                    <transformer  
                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">  
                        <mainClass>com.chenzhou.test.Main</mainClass>  
                    </transformer>  
                </transformers>  
            </configuration>  
        </execution>  
    </executions>  
</plugin>  

 

方法二:

 

第二種方法其實很簡單,找到這三個文件,用我提供的這三個完整的文件覆蓋便可。

 

一般,這三個文件都在jar包下面的META-INF路徑下

 

參考連接:https://www.iteye.com/blog/chenzhou123520-1971322

                 https://www.iteye.com/blog/chenzhou123520-1706242

                 http://www.javashuo.com/article/p-notqopys-dy.html

 

錯誤五:找不到 ***.propertie或者spring-config.xml

maven打包插件配置錯誤,resources下面的配置沒有打進來

             

 

 

       

相關文章
相關標籤/搜索