通过命令行运行java文件(jar、class),以及生成一个简单的jar包

最近在开发中涉及到了java文件的运行,踩了一些坑,简单记录一下。

jar文件

在装有java的计算机中,要直接运行jar文件,可以用命令:

java -jar jarpath

若要指定运行类名,则用:

java -cp jarpath classname

注意:

  1. 若不在jar文件目录下运行,则jarpath需要用全路径
  2. 若类有包名,则classname要用特定的格式

class文件

在class文件所在目录下运行:

java classname

若在其他目录下运行,则需要通过classpath指定目录:

java -classpath classdir classname

注意:

  1. classname不需要加.class
  2. 若类有包名,则classname要用特定的格式
  3. classdir是class文件所在的目录

示例代码

首先编写一个简单的HelloWorld.java文件,其中包含三个类:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}
class Demo{
    public static void main(String[] args) {
        System.out.println("Demo Class");
    }
}
class Demo2{
    public static void main(String[] args) {
        System.out.println("Demo2 Class");
    }
}

通过javac命令编译一下,生成三个class文件:

javac HelloWorld.java

在这里插入图片描述
通过jar命令生成jar包:

jar -cvf Hello.jar *

在这里插入图片描述
然后运行jar文件,发现会报错,显示Hello.jar中没有主清单属性
在这里插入图片描述
这时候需要去修改一下MANIFEST.MF文件:
用360压缩打开Hello.jar,找到MANIFEST.MF文件,在末尾添加一行,最后再加个回车:

Main-Class: HelloWorld

在这里插入图片描述
然后保存,再重新运行一下,发现成功了,也可以指定运行类名:
在这里插入图片描述
以上是对jar文件的测试运行,接下来测一下class文件:
在这里插入图片描述
这当然是皆大欢喜了,不过要注意的是class文件是不支持全路径运行的:
在这里插入图片描述
如果在其他目录运行,需要用classpath参数指定一下目录,即:
在这里插入图片描述
!!!注意!!!
在修改MANIFEST.MF文件的时候,用360压缩打开,直接改,不要先改后缀名,再解压,改完文件再压缩,这种方法是不行的,具体什么原因我也不是很清楚,我猜可能压缩形式不一样,这样会破坏文件。
如果用这种方法,会报错:
在这里插入图片描述
另外,有包名的类,我没有测过,有需求的可以自己去测一下!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值