加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

在Linux下运行引入了外部jar包的java程序

发布时间:2020-12-13 23:43:29 所属栏目:Linux 来源:网络整理
导读:如图: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 proce

如图: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 

运行

[[email?protected] 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下

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读