Java代码命令行运行

一.Java代码命令行运行

1.编写java可执行代码:

package org.gfg;

import com.nciae.watermark.Watermark;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;

public class Testa {

	public static final Watermark wm = new Watermark();

	public static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");

	public static void inputWatermark(String watermarkInfo, String filePath, String outputPath) {
		System.out.println(sdf.format(new Date()) + "file:" + filePath + ",set watermark info");
		String output = outputPath + filePath.substring(filePath.lastIndexOf(File.pathSeparator) + 1);
		boolean flag = wm.Embed(filePath, output, watermarkInfo);
		if (flag) {
			System.out.println(sdf.format(new Date()) + "file:" + filePath + ",set watermark info success!");
		} else {
			System.out.println(sdf.format(new Date()) + "file:" + filePath + ",set watermark info error!");
		}
	}

	public static List<String> outputWatermarkInfo(String filePath) {
		List<String> values = new ArrayList<String>();
		boolean extract = wm.Extract(filePath, values);
		long startTime = System.currentTimeMillis();
		if (!extract) {
			System.out.println(sdf.format(new Date()) + "file:" + filePath + ",get watermark failure.");
			return null;
		}
		System.out.println(sdf.format(new Date()) + "file:" + filePath + ",get watermark info. time consuming:" + (System.currentTimeMillis() - startTime) + "ms");
		return values;
	}

	public static void inputWatermarkDir(String watermarkInfo, String filePath, String outputPath) {
		File outputp = new File(outputPath);
		if (!outputp.exists()) {
			outputp.mkdirs();
		}
		System.out.println(sdf.format(new Date()) + ",file:" + filePath + ", enter");
		File file = new File(filePath);
		boolean exists = file.exists();
		if (!exists) {
			System.out.println(sdf.format(new Date()) + "file:" + filePath + ",not exist");
			return;
		}
		if (file.isDirectory()) {
			File[] files = file.listFiles();
			for (File subFile: files) {
				inputWatermarkDir(watermarkInfo, subFile.getAbsolutePath(), outputPath);
			}
		} else {
			inputWatermark(watermarkInfo, filePath, outputPath);
		}
	}

	public static void outputWatermarkInfoFromDir(String fileDir) {
		System.out.println(sdf.format(new Date()) + "file:" + fileDir + ", enter");
		File file = new File(fileDir);
		if (!file.exists()) {
			System.out.println(sdf.format(new Date()) + "file:" + fileDir + ",does not exist");
			return;
		}
		if (file.isDirectory()) {
			File[] files = file.listFiles();
			for (File nextFile : files) {
				String nextFilePath = nextFile.getAbsolutePath();
				outputWatermarkInfoFromDir(nextFilePath);
			}
		} else {
			List<String> infos = outputWatermarkInfo(fileDir);
			if (Objects.isNull(infos)) {
				System.out.println(sdf.format(new Date()) + "file:" + fileDir + ",watermake info:null");
				return;
			}
			for (String info : infos) {
				System.out.println(sdf.format(new Date()) + "file:" + fileDir + ",watermake info:" + info);
			}
		}
	}

	public static void main(String[] args) {
		args = new String []{"yaojie", "//192.168.18.118/data/GF_DATA/shuiyin"};

		if (Objects.isNull(args) || args.length < 2) {
			System.out.println(sdf.format(new Date()) + ",error: Please enter watermark information, input folder and output folder");
		}
		
		String info = args[0];
		String file = args[1];
		
		System.out.println(sdf.format(new Date()) + ",start:" + file);
		inputWatermarkDir(info, file, "./data/");
		System.out.println(sdf.format(new Date()) + ",end:" + file);
	}
}

2.以上代码通过javac编译

# -cp .;lib/commons-compress-1.8.jar;lib/watermark2-1.2.0.RELEASE.jar 为需要加载的jar包
# 需要事先安装jdk
javac -cp .;lib/commons-compress-1.8.jar;lib/watermark2-1.2.0.RELEASE.jar ./Testa.java

3.通过java 命令运行 .class文件

# Testa 为class文件, 后面 %info% 为添加所需要输入的参数, ">> ./log/matermake_input.txt" 输出信息写入文件
java -cp .;lib/commons-compress-1.8.jar;lib/watermark2-1.2.0.RELEASE.jar Testa %info% %input% >> ./log/matermake_input.txt

4.windows运行命令

# @echo off
# set /p info=please matermake info:
# 以上为可输入信息的命令
@echo off
set /p info=please matermake info:
@echo off
set /p input=please input file path:
# cd /d %~dp0 切换到当前的文件夹
cd /d %~dp0
javac -cp .;lib/commons-compress-1.8.jar;lib/watermark2-1.2.0.RELEASE.jar ./Testa.java
java -cp .;lib/commons-compress-1.8.jar;lib/watermark2-1.2.0.RELEASE.jar Testa %info% %input% >> ./log/matermake_input.txt
# pause 暂停,若没有,则执行结束后无法看见提示信息
pause

5.linux运行命令


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值