CLASSPATH 配置 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;
一句话 不写包名就是直接 编译文件然后执行
#不写包名 编辑器会报错 但是不影响编译和执行 -encoding 指定编码
javac Test.java
javac -encoding UTF-8 Test.java
java Test
写了包名就必须先编译文件 然后在包的最外层如src带着包名点文件名执行
# 例如 java文件目录为 D:\DEV\src\Test\com\by\lc\Test.java
# 编译的class文件为 D:\DEV\Test\src\com\by\lc\Test.class
# 那么执行文件需要在 D:\DEV\Test\src 目录下
java com.by.lc.Test
# -d . 选项 会在当前目录生成包含包名的class文件
# 也就是会生成下层目录 如 com/by.lc/Test.class, 调用的时候使用包名 点文件名
javac -d . Test.java
java com.by.lc.Test
# 在out目录生成class文件 必须是存在的文件夹
# 运行时也要指定路径
mkdir out
javac -d ./out ./*.java
java -cp ./out com.by.lc.Test
# 引入jar包的情况 . 表示搜索当前目录下 写了引包再写 ./out 执行 会找不到包
# 可以将 out 连接到引包的 后面 应该是class文件被 . 扫描和引入了
# windows 多个文件 引入jar包 生成文件夹
# *.java 可以是多目录 如 ./test1 ./test2
javac -cp .;DmJdbcDriver18.jar;commons-io-2.5.jar -d ./out -encoding UTF-8 *.java && java -cp .;DmJdbcDriver18.jar;commons-io-2.5.jar;out com.by.lc.URLToFile
# Linux 多个文件 引入jar包 生成文件夹
javac -cp .:DmJdbcDriver18.jar:commons-io-2.5.jar -d ./out -encoding UTF-8 *.java && java -cp .:DmJdbcDriver18.jar:commons-io-2.5.jar:out com.by.lc.URLToFile
如果需要依赖jar的话,需要按照如下格式 编译和执行都需要引入jar
windows下,对于需要依赖的jar包使用-cp ,多个jar包之间使用分号;java命令运行时注意.;
#删除包名只是显示错误 不影响编译和执行 所以可以删掉 在同一目录运行
#jar 与java文件在同一目录可以省略前面路径 方便复制使用
javac -cp .;DmJdbcDriver18.jar;httpclient.jar -encoding UTF-8 DownloadFile.java && java -cp .;DmJdbcDriver18.jar;httpclient.jar DownloadFile
Linux下,对于需要依赖的jar包使用-cp ,多个jar包之间使用冒号:java命令运行时注意.:
javac -cp .:DmJdbcDriver18.jar:httpclient.jar -encoding UTF-8 DownloadFile.java && java -cp .:DmJdbcDriver18.jar:httpclient.jar DownloadFile
上面看完了没,别看了 那都没用 下面这个一把梭了
目录结构如下
Test2
├── libs
│ ├── DmJdbcDriver18.jar
│ ├── commons-io-2.5.jar
│ └── sunjce_provider.jar
├── src
│ ├── TxtToMap.java
│ └── URLToFile.java
└── setting.txt
就看这一行就够了
可以指定jar目录 java文件目录 但是不要再指定输出目录了 就生成在当前目录
结构和包名一致 所以直接 java命令调用【包名.类名】
javac -encoding UTF-8 -Djava.ext.dirs=./libs -d . ./src/*.java && java -Djava.ext.dirs=./libs com.by.lc.URLToFile
Test2
├── com
│ └── by
│ └── lc
│ ├── TxtToMap.class
│ └── URLToFile.class
├── libs
│ ├── DmJdbcDriver18.jar
│ ├── commons-io-2.5.jar
│ └── sunjce_provider.jar
├── src
│ ├── TxtToMap.java
│ └── URLToFile.java
├── log.txt
└── setting.txt
结果如下 全白折腾了 不区分Linux和Windows 已测试