Table of Contents
最开始的起因是看到 1 USD 兑换的 CNY 越来越多导致我要给 vultr 交的钱越来越多,因此比较关注汇率。
接着就是 Google,所以想干脆整一个命令行工具得了。
That is how the project comes.
项目地址:https://github.com/intMojIBakE/USD2CNY
0:在 IDEA 上做完项目
至少能在 IDEA 上跑起来吧(
可以说是有手就行。
新建空项目,加 Maven,依赖只需要 Jsoup。
然后是 main class,指定数据源 URL,连上以后用正则把数据拿出来,再输出就行了。
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class USD2CNY {
public static void main(String[] args) {
String url = "https://www.xe.com/currencyconverter/convert/?Amount=1&From=USD&To=CNY";
String UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0";
Document document = null;
try {
document = Jsoup.connect(url)
.userAgent(UA)
.get();
} catch (IOException e) {
e.printStackTrace();
}
assert document != null;
String body = document.body().toString();
String crop1 = "result__ConvertedText";
String crop2 = "result__Repulsor-sc";
body = body.substring(body.indexOf(crop1) + crop1.length(), body.indexOf(crop2) - crop2.length());
// System.out.println("^" + body + "$");
String reg = ">.+<s";
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(body);
BigDecimal rate = null;
if (matcher.find()) {
String str = matcher.group();
str = str.substring(1, str.indexOf("<"));
rate = new BigDecimal(str);
}
if (rate != null) {
System.out.println("1 USD = " + rate + "CNY");
}
}
}
几乎就是个单文件程序。(没错,就是这么简单)
1:jar 包以及运行脚本
打 jar 包这一趴,甚至不需要 maven 的 package,直接 build 就行了。
当然 build 前是要引入 Jsoup 路径。
jar 包的运行脚本也很简单,主体就一句java -jar
的命令就行了。
2:打包 deb
离最终目标:打成 deb 包实现命令行直接运行只差一步。
参考的文章:https://blog.csdn.net/gatieme/article/details/52829907
我比较懒,就直接在项目目录上建立deb
目录作为打包目录。
在deb
目录下,必须有一个DEBIAN
目录,下有control
,是一个文本文件,存储该包的相关信息。这里参考 debian 官方写的文档差不多就行了。
Package: USD2CNY
Version: 1.0
Priority: optional
Suggests:
Architecture: amd64
Installed-Size: 4096
Maintainer: Shinohara<[email protected]>
Provides: iCooper.cc
Description: A java CLI program to get the real time exchange rate between USD and CNY.
和 DEBIAN 的同级目录是你希望包内软件的架构。
在这个 demo 中,只需要把 jar 包和运行脚本放在 opt 目录,以及在 bin 目录下的一个软链接。
文件树目录如下:
.
├── deb
│ ├── DEBIAN
│ │ └── control
│ ├── opt
│ │ └── usd2cny
│ │ ├── launch.sh
│ │ └── USD2CNY.jar
│ └── usr
│ └── bin
│ └── usd2cny -> ../../opt/usd2cny/launch.sh
最后在 deb 目录下,运行dpkg-deb -b deb usd2cny.deb
,即可生成 deb 包。
安装即可。
Recent Comments