【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 (依赖包) 主类名(主类名一定要写全路径)

 

posted @ 2015-08-18 15:09  luoyinqq  阅读(5801)  评论(0编辑  收藏  举报