命令行执行java程序

来源:互联网 发布:打印机端口怎么看 编辑:程序博客网 时间:2024/05/16 00:48

命令行执行java程序(转载整理)


参考:
http://blog.csdn.net/lee_decimal/article/details/5885406
https://yq.aliyun.com/articles/35201
http://longdick.iteye.com/blog/332580
http://www.cnblogs.com/huhu0013/archive/2012/11/09/2762573.html
http://blog.csdn.net/github_34160016/article/details/50978752
http://blog.csdn.net/yanfeilin/article/details/1957313/


第一:简单的命令行(没有package)
c:/temp/bin/GetGreeting.java

public class GetGreeting  {      public static void main(String [] args)      {          System.out.println("Hello world");      }  }  

1.编译:cmd–cd到c:/temp/bin javac GetGreeting.java
生成GetGreeting.class文件
2.执行:java Greeting
打印出Hello world


第二:有package的java程序
c:/temp/bin/client/GetGreeting.java
1.cd到c:/temp/bin/client javac GetGreeting.java
在c:/temp/bin/client 目录中生成 GetGreeting.class文件
2.cd.. 退回到c:/temp/bin
执行 java client.GetGreeting
打印出Hello world


第三:用命令行调用jar文件(无package)
将GetGreeting.java放在c:/temp/bin中—-javac 编译生成GetGreeting.class
将GetGreeting.java删除,用jar -cvf test.jar .命令打包成jar文件
修改jar文件中的META-INF/MANIFEST.MF文件
在最后加一行 Main-Class: GetGreeting(注意:冒号和GetGreeting间有一空格,否则报错-Invalid or corrupt jarfile C:/temp/bin/test.jar),然后回车,否则也报错-Failed to load Main-Class manifest attribute from
C:/temp/bin/test.jar
命令行执行:java -jar c:/temp/bin/test.jar


第四:用命令行调用jar(有package)
结合另一个案例看,这个案例讲的也很好。
https://yq.aliyun.com/articles/35201


第五:用命令行执行class(带参数)
类似第一步
GetGreeting.java

public class GetGreeting  {      public static void main(String [] args)      {          System.out.println("input length is:"+args.length);          for(int i=0;i<args.length;i++)          {               System.out.println("input "+i+":"+args[i]);          }      }  }  

输入:java GetGreeting 1 2 3
输出
这里写图片描述


第六:命令行调用jar文件(带参数)
类似第三步,使用命令 java -jar c:/temp/bin/test.jar 1 2 3
输出结果与上图一样。


第七:命令行调用jar文件(jar文件代码里引用其他jar文件)
以连接数据库为例
将ConnDB.java放在c:/temp/bin中

import java.sql.Connection;  import java.sql.DriverManager;  public class ConnDB  {      public static void main(String[] args)      {          String drive = "oracle.jdbc.driver.OracleDriver";          String url = "jdbc:oracle:thin:@ip:1521:esd";          String username = "scylla";          String password = "******";          try          {              Connection conn = null;              Class.forName(drive);              DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());              conn = DriverManager.getConnection(url,username,password);              System.out.println("conn is:"+conn);          }          catch (Exception e)           {              e.printStackTrace();          }      }  }  

用javac编译时需将classes12.jar包解压缩放在bin中(否则编译不通过,提示找不到package)
删掉ConnDB.java,打jar包conn.jar
在bin中建立文件夹lib,将classes12.jar文件放在lib目录中
修改conn.jar中META-INF/MANIFEST.MF
Class-Path: ./lib/classes12.jar(制定jar路径)
Main-Class: ConnDB(注意冒号后面有一个空格,最后回车)
用java -jar c:/temp/bin/conn.jar 调用即可!
第七的其他参考:http://longdick.iteye.com/blog/332580
http://www.cnblogs.com/huhu0013/archive/2012/11/09/2762573.html
http://blog.sina.com.cn/s/blog_6aefe4250101fksp.html

原创粉丝点击