【linux】linux編譯執行java工程

一,java環境在linux上的安裝

wget http://10.100.51.30:8080/software/jdk-7u71-linux-x64.rpm
rpm -ivh jdk-7u71-linux-x64.rpm

 安裝好後試試  java -vjava

若是有打印出jdk的版本號,表明安裝成功linux

二  maven在linux上的安裝

AC=`ls /opt/maven|wc -l`

if [[ $AC -eq 0 ]];then

  cd /opt   wget -q http://10.100.51.30:8080/software/apache-maven-3.3.3-bin.tar.gz   tar -xf apache-maven-3.3.3-bin.tar.gz   rm -rf maven   mv apache-maven-3.3.3 maven   rm -f apache-maven-3.3.3-bin.tar.gz

  AC=`grep /opt/maven/bin /etc/profile|wc -l`   echo AC=$AC

  if [[ $AC -eq 0 ]]; then     echo export MAVEN_HOME=/opt/maven>>/etc/profile     echo export PATH=\$PATH:/opt/maven/bin>>/etc/profile   fi

  source /etc/profile

fi

 

 安裝好後,試試mvn -v,若是打印不成功。試試關閉這個鏈接,從新開個鏈接 mvn -v,再不行,cd /opt,看看其中是否有maven目錄。apache

 

三 簡單java項目在linux上的編譯

  將寫好的*.java文件上傳到linux上。使用sftp工具,put *.java -》上傳文件,put -r com -》上傳目錄。bash

而後進入該java文件目錄下,服務器

編譯命令  javac test.javaeclipse

執行命名 java testmaven

結果會輸出到屏幕或者寫文件到目錄下。函數

 

四 有依賴其餘jar包的java工程的編譯執行

 若是該工程是一個maven項目。則可基於maven在linux上編譯執行。maven中的pom.xml中寫了該工程依賴的jar包。工具

它會自動下載所需jar包啓動編譯。ui

 在pom.xml目錄下

mvn compile 進行編譯

mvn test 進行執行

mvn package 打包

這樣在工程目錄下獲得一個target目錄。其中含該文件的jar包,名爲burying.jar,內有工程中全部的class

而後,寫一個sh文件。

大概需求是要生成命令

java -cp /home/test/1.jar:/home/test/2.jar:/home/com/burying.jar com.java.BPCS

以上,-cp後面指定了lib中全部依賴的jar包,最後追加的是該工程所含class的jar包,而後是該工程的主函數類名


如上方法,須要將本工程用到的jar文件都收集,從本機上傳到服務器,再在服務裏上遍歷,加入命令中。麻煩瑣碎容易出錯。

有更好的方法,是基於assembly。

工程是基於maven創建的,maven中管理了全部可用的jar包。則在pom.xml中,dependency下,追加以下幾行

<build>
    <finalName>BPCS</finalName>
    <defaultGoal>assembly:assembly</defaultGoal>
                   <plugins>
                            <plugin> 
                           <artifactId>maven-compiler-plugin </artifactId> 
                           <configuration> 
                             <source>1.6</source> 
                             <target>1.6</target> 
                             <encoding>utf-8</encoding>
                           </configuration> 
                       </plugin>
                            <plugin>
                                     <groupId>org.apache.maven.plugins</groupId>
                                     <artifactId>maven-eclipse-plugin</artifactId>
                            </plugin>
                            <plugin>  
                                       <artifactId>maven-assembly-plugin</artifactId>  
                                       <configuration>  
                                         <descriptorRefs>  
                                           <descriptorRef>jar-with-dependencies</descriptorRef>  
                                         </descriptorRefs>  
                                       <archive>  
                                       <manifest>  
                                           <mainClass></mainClass>  
                                       </manifest>  
                                       </archive>  
                                       </configuration>  
                                       <executions>  
                                         <execution>  
                                           <id>make-assembly</id>  
                                           <phase>package</phase>  
                                           <goals>  
                                             <goal>single</goal>  
                                           </goals>  
                                        </execution>  
                                       </executions>  
                            </plugin>
                   </plugins>
  </build>

而後在linux上mvn package。則在工程target下面獲得一個集成全部依賴包的jar,名爲all-withdependency.jar

運行命令 java -cp all-withdependency.jar com.main.BPCS  可獲得結果。(此處注意是java -cp (依賴包) 主類名(主類名必定要寫全路徑)

相關文章
相關標籤/搜索