cd hello
mkdir classes
包名也需要逐级创建
示例结构如下
.
├── classes
│ └── io
│ └── zjw
│ ├── Main$1.class
│ ├── Main$2.class
│ ├── Main.class
│ └── utils
│ └── Helper.class
├── io
│ └── zjw
│ ├── Main.java
│ └── utils
│ └── Helper.java
├── manifest.txt
├── o1.jar
└── run.sh
classes里面的内容是javac 编译出来的,不用管。
$ cat run.sh
#!/bin/bash
rm o1.jar
rm -rf classes/io
# 编译class文件
javac -d classes io/zjw/Main.java
# 打包成jar
jar cvfm o1.jar manifest.txt -C classes/ .
# 运行jar
java -jar o1.jar
关键的地方来了:
$ cat manifest.txt
Manifest-Version: 1.0
Main-Class: io.zjw.Main
这个文件是jar运行的入口信息。注意最后一行有空行。
注意如果没有空行,会运行不起来,会报.jar中没有主清单属性
vs插件:搜索java,安装如下的即可
Language Support for Java(TM) by Red Hat
总结:用vscode临时调试java很方便。不必开idea这种大家伙。