背景:
有时候需要用java写一些简单的处理脚本用于在服务器上处理一些任务,通过sh脚本进行启动和调度。为了简单起见,可以直接在服务器通过命令的方式来手动编译和制作可执行jar包,这样的jar包体积也是非常小。
方法:
1、编写java代码
用一个对文件加密操作的一段代码为例。
public class EncodeClient {
private static final int numOfEncAndDec = 0x999; //加密解密秘钥
public static void main(String[] args) throws Exception {
EncFile(args[0],args[1]);
}
public static void EncFile(String src, String enc) throws Exception {
File srcFile = new File(src);
File encFile = new File(enc);
if(!srcFile.exists()){
System.out.println("srcFile file created");
srcFile.createNewFile();
}
if(!encFile.exists()){
System.out.println("encrypt file created");
encFile.createNewFile();
}
InputStream fis = new FileInputStream(srcFile);
OutputStream fos = new FileOutputStream(encFile);
int dataOfFile;
while ((dataOfFile = fis.read()) > -1) {
fos.write(dataOfFile^numOfEncAndDec);
}
System.out.println("加密成功...");
fis.close();
fos.flush();
fos.close();
}
}
2、编译成class文件
javac -encoding utf-8 EncodeClient.java
注意,如果不指定编码可能会由于中文出现报错。
3、添加启动类清单
创建清单文件META-INF\MENIFEST.MF,写入以下内容
Manifest-Version: 1.0
Created-By: 1.8.0_121 (Oracle Corporation)
Main-Class: EncodeClient
4、制作jar包
jar -cvfm encode.jar META-INF\MENIFEST.MF EncodeClient.class
5、运行
java -jar encode.jar srcFile tarFile
encrypt file created
加密成功...