pom文件
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<!-- get all project dependencies -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!-- MainClass in mainfest make a executable jar -->
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.**.**.ExcuteLinux</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!-- bind to the packaging phase -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
注意assembly 插件可以指定特定的package.xml进行打包,也可以选择内置的选项,比如:jar-with-dependencies
code
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class ExcuteLinux {
public static String exeCmd(String commandStr) {
String result = null;
try {
String[] cmd = new String[]{"/bin/sh", "-c",commandStr};
Process ps = Runtime.getRuntime().exec(cmd);
BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
result = sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
执行命令 mvn -U clean package assembly:assembly -DskipTests 生成可执行jar