命令行运行java程序
方法1:
普通的jar文件
java -cp discard.jar:lib/javassist.jar:lib/netty-all-5.0.0.Alpha1.jar:lib/log4j-1.2.14.jar io.netty.example.discard.DiscardServer
其中 io.netty.example.discard.DiscardServer 为java的带main方法的类名
命令行中的jar文件是需要用到的,必须每一个都列出来,不能用*.jar通配符表示
方法2:
可运行的jar文件
run_discard.jar是可运行的jar文件,并且将运行类所需的全部jar类库集成为1个jar文件。导出的只有1个jar文件。
java -jar run_discard.jar
方法三:
run_discard_single.jar是可运行的jar文件,并且将运行类所需的全部jar文件存放到与文件run_discard_single.jar同一目录的run_discard_single_lib目录下。因此会导出一个jar文件和一个lib目录(如下图中的run_discard_single_lib目录),在lib目录下有所需的全部jar类库。
java -jar run_discard_single.jar
备注:lib目录名不要修改
解开run_discard_single.jar可以看到/META-INF/MANIFEST.MF内容为:
Manifest-Version: 1.0
Class-Path: . run_discard_single_lib/netty-all-5.0.0.Alpha1.jar run_di
scard_single_lib/log4j-1.2.14.jar run_discard_single_lib/javassist.jar
Main-Class: io.netty.example.discard.DiscardServer
可以看到这个目录已经在使用中,如果修改了这个目录名,会导致程序无法运行。
JAVA和JAVAC 命令行
javac和java命令行中的-classpath选项这是个很基础的问题,但是因为基本上都是用现有的IDE工具 来开发java程序,所以很少有人意识到这一点。
javac
-classpath,设定要搜索类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有在CLASSPATH里面的设定。
-sourcepath, 设定要搜索编译所需java 文件的路径,可以是目录,jar文件,zip文件(里面都是java文件)。
所以一个完整的javac命令行应该是这样的,
假设abc.java在路径c:\src里面,在任何的目录的都可以执行以下命令来编译。
javac -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip -sourcepath c:\source\project1\src;c:\source\project2 \lib\src.jar;c:\source\project3\lib\src.zip c:\src\abc.java
表示编译需要c:\classed下面的class文件,c:\jar\abc.jar里面的class文件,c:\zip\abc.zip里面的class文件
还需要c:\source\project1\src下面的源文件,c:\source\project2 \lib\src.jar里面的源文件,c:\source\project3\lib\src.zip里面的源文件,
注意:jar,zip里面的源文件不会有什么改动,目录下的源文件,有可能会被重新编译。
java
-classpath, 设定要搜索的类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有的CLASSPATH的设定。
由于所要执行的类也是要搜索的类的一部分,所以一定要把这个类的路径也放到-classpath的设置里面。
表现在,在要执行的类的路径里面执行java时,一定要添加上点号(.)标示本目录也要搜索。
假设abc.class在路径c:\src里面
可以在任何路径下执行以下命令
java -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip;c:\src abc
问题:如果main.class属于c:\jar\abc.jar,并且在com.cnblogs.jeffchen这个包里,那么执行java -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip;com.cnblogs.jeffchen.main即可, 但是如果classpath中包含多个jar包呢?并且其他jar包中也有com.cnblogs.jeffchen会发生什么情况?错误?
在windows下,
文件路径的分割符为反斜杠 \
类或者java文件列表的分割符为分号 ;
在linux下
文件路径的分隔符位斜杠 /
类或者java文件列表的分隔符为冒号 :
一个linux下编译和运行的例子
/usr/local/java/bin/javac -classpath /tmp/javatest/lib/mail-1.3.3.jar -d /tmp/javatest/bin/ /tmp/javatest/src/jp/co/realseed/Capability.java
/usr/local/java/bin/java -classpath /tmp/javatest/lib/mail-1.3.3.jar:/tmp/javatest/bin/ jp.co.realseed.Capability
mac电脑上的例子
java -classpath /Users/zjq/workspace/PROJECT_nettydemo5.0.0alpha1/WebContent/WEB-INF/classes:/Users/zjq/workspace/PROJECT_nettydemo5.0.0alpha1/WebContent/WEB-INF/lib/javassist.jar:/Users/zjq/workspace/PROJECT_nettydemo5.0.0alpha1/WebContent/WEB-INF/lib/log4j-1.2.14.jar:/Users/zjq/workspace/PROJECT_nettydemo5.0.0alpha1/WebContent/WEB-INF/lib/netty-all-5.0.0.Alpha1.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/lib/tools.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/lib/dt.jar stephen.MyServer
相关推荐
编程大力哥java视频 - 如何使用命令行方式运行java程序,这个视频介绍了如何使用windows自带的命令行工具来运行java程序
使用命令行方式开发Java程序 使用命令行方式开发Java程序 Java程序的运行机制 了解Java程序的运行机制 掌握使用命令行方式开发Java程序的步骤 Java程序的运行机制 编写源程序 编译源程序 由Java解释器解释运行 字节...
命令行下快速运行程序集,在运行对话框中输入。
定时任务,不是循环,可以自定义命令行,运行java程序,git命令,可以定时打包,更新、关机等操作,通过配置自定义时间 config.json 配置文件如下 { "timer": [ "10:00:00", "12:30:00", "20:00:00", "23:40...
不借助任何编译,运行工具在DOS下编译和运行java程序
通过在java程序中调用cmd ,来查找在doc的运行,来查找类似的cmd命令
jvmtop, 针对 命令行的Java监视,包括 profiler jvmtop是一个轻量级控制台应用程序,用于监视机器上所有可以访问的运行的jvm 。... 运行java进程的内存信息。Jvmtop还包括一个 CPU控制台事件探查器。在 Linux 。S
从命令行运行 Java 程序; 产生控制台输出 导入其他 Java 包以使其在您的代码中可访问 比较和对比 Java 的特性和组件,例如:平台独立性、面向对象、封装等。 使用 Java 数据类型 声明和初始化变量(包括基本数据...
用法二进制文件包含在/ target中,但是,您可以使用mvn clean install通过maven进行构建使用“ java -jar target \ javaGame-1.0-Final.jar”运行程序您可以通过键入“ esc”来逃避这三个游戏中的任何一个从主菜单中...
从命令行运行Java程序; 产生控制台输出 导入其他Java软件包以使其在您的代码中可访问 比较和对比Java的功能和组件,例如:平台独立性,面向对象,封装等。 声明和初始化变量(包括基本数据类型的转换) 区分对象...
java小程序编译和运行。 批处理……
3、先运行服务器类MJServer.java,再运行客户端类MyClient.java 4、提示连接成功后,在服务类的控制台输入cmd命令,例如ping 127.0.0.1 5、控制台可以看到客户端返回的内容 ps:因为本人系统用的是繁体字,可能会导致...
JAVA数据输入方式(命令行输入和控制台输入) 一、 在运行程序时,通过命令行输入。(最简单,但比较笨的一种方法) 二、使用IO流 (比较好的方法,但有点难) 三、如何将String类型转换成其他类型
在本篇文章里小编给大家分享的是关于解决cmd运行java程序“找不到文件”提示的方案,有需要的朋友们可以参考下。
java代码命令行编译在手机上运行的示例。 chcp 65001 javac -encoding utf-8 ./org/test/TestJava.java dx --dex --output =D:\pro\TestJava.dex .\org\test\TestJava.class
使用构建工具Gradle的Java命令行界面应用程序基础 要求 您需要在系统中安装JDK 11和gradle 6.6.1,所有更高版本和一些旧版本都可以使用。 为了确保您拥有所有必要的命令,请运行以下命令,如果生成一些类似的输出,...
一个基本的命令行Java程序,用于搜索Twitter和发布Tweet。 程序运行时,将提示用户输入其“消费者密钥”和“消费者秘密”。 之后,将向用户提供来自Twitter的身份验证URL,以获取AccessToken PIN。 用户输入此PIN,...
该帮助文档包括以下内容: Eclipse入门 选择透视图 创建项目 创建Java程序 编译和运行Java程序 从命令行运行Java Application 在Eclipse中调试
编译和运行Java程序: 将上述代码保存到一个名为Calculator.java的文件中。 打开命令行终端,导航到包含Calculator.java文件的目录。 编译Java源文件。在命令行中输入以下命令: bash javac Calculator.java 这将...