如图:H.java里引入了commons-io-2.2.jar
代码如下:
import org.apache.commons.io.IOUtils; public class H{ public static void main(String[] args){ String[] a = { "/bin/sh", "-c","iptables -nvL --line"}; process1(a); } public static void process1(String[] cmdarray) { try { final Process p = Runtime.getRuntime().exec(cmdarray); String info = IOUtils.toString(p.getInputStream()); String error = IOUtils.toString(p.getErrorStream()); System.err.println(info); } catch (Exception e) { e.printStackTrace(); } } }
编译:
javac -cp ./commons-io-2.2.jar H.java
运行
[root@localhost javarun]# java -cp $CLASSPATH:commons-io-2.2.jar H Chain INPUT (policy ACCEPT 2348K packets, 254M bytes) num pkts bytes target prot opt in out source destination 1 3 152 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 2 3 152 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:1111 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 1805K packets, 179M bytes) num pkts bytes target prot opt in out source destination 1 3 120 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:8080
复制一个网络教程:
1、将外部jar包(javacsv.jar)放在Linux路径下面。
如/home/cys/lib
2、将需要编译的java文件(CsvTest.java)放在Linux路径。如/home/cys/test
3、编译已经写好的java文件,命令如下:
javac -cp /home/cys/lib/javacsv.jar /home/cys/lib/CsvTest.java
生成CsvTest.class文件。
4、运行程序,命令如下:
java -cp $CLASSPATH:/home/cys/lib/javacsv.jar:/home/cys/lib/CsvTest CsvTest
结果运行正确
需要注意的几点是:
1、编译的时候,需要使用-cp环境变量来引入外部jar的地址。-cp也可以换成-classpath。
2、运行过程中,环境变量-cp中一定要加入编译时候生成的class文件的路径。并且用冒号分割。
windows下环境变量是使用引号分割的。但是在Linux下环境变量需要使用冒号分割
Linux下