您的位置:首页 > 运维架构 > Linux

【linux】linux编译执行java工程

2015-08-18 15:09 603 查看

一,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 (依赖包) 主类名(主类名一定要写全路径)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: