【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 -v

如果有打印出jdk的版本號,代表安裝成功

二  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目錄。

 

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

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

然后進入該java文件目錄下,

編譯命令  javac test.java

執行命名 java test

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

 

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

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

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

 在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 (依賴包) 主類名(主類名一定要寫全路徑)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM