JRTClient打开谷歌

发布时间:2024年01月05日

网站默认已经启动https访问,这时候JRTClient发布wss需要浏览器信任证书才能访问打印。为此在JRTClient内部发布了HTTPS服务,有时候浏览器信任的证书会丢失或者被清理掉,这时候需要手工信任下,当然用JRTBrowser就不用信任证书,对开始和实施还是使用Chrome方便。所以给JRTClient加上右键HTTPS按钮和主界面加上按钮供开发和实施信任证书。

涉及到的技术就是找到谷歌exe地址,打开URL,需要在Windows下访问注册表得到。Linux用命令驱动,代码看下面。

驱动谷歌浏览器打开https链接
在这里插入图片描述
修复A4旋转纸张bug
在这里插入图片描述

java驱动谷歌浏览器

package Monitor.Util;

import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.nio.file.Paths;
import java.util.prefs.Preferences;

/**
 * 用谷歌打开页面
 */
public class ChomeOpenUtil {

    /**
     * 打印页面
     *
     * @param url 路径
     * @throws Exception
     */
    public static void OpenUrl(String url) throws Exception {
        //获取操作系统类型
        String os = System.getProperty("os.name").toLowerCase();
        //根据操作系统类型调用不同的命令
        if (os.contains("win")) {
            String path = GetChromePath();
            if (!path.isEmpty()) {
                File file = new File(path);
                if (file.exists()) {
                    //使用Runtime.exec执行命令
                    Runtime.getRuntime().exec(path + " "+ url);
                    return;
                }
            }
            //使用Runtime.exec执行命令
            Runtime.getRuntime().exec("cmd /c start " + url);

        } else if (os.contains("nix") || os.contains("nux") || os.contains("mac")) {
            //Linux or Mac
            //使用ProcessBuilder创建一个进程
            ProcessBuilder pb = new ProcessBuilder("google-chrome", url);
            Process p = pb.start();
        } else {
            System.out.println("Unsupported OS");
        }
    }

    /**
     * 得到谷歌程序地址
     *
     * @return
     * @throws Exception
     */
    private static String GetChromePath() throws Exception {
        String path = GetExeRegedit("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\chrome.exe");
        if (path.isEmpty()) {
            path = GetExeRegedit("HKEY_LOCAL_MACHINE\\HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\chrome.exe");
        }
        if (!path.isEmpty()) {
            path += "\\chrome.exe";
        }
        return path;
    }

    /**
     * 得到注册表值
     *
     * @param path 执行路径
     * @return
     * @throws Exception
     */
    private static String GetExeRegedit(String path) throws Exception {
        Process ps = null;
        //当路径中有空格时,要把路径打上引号。
        ps = Runtime.getRuntime().exec("reg query \"" + path + "\"");
        ps.getOutputStream().close();
        InputStreamReader i = new InputStreamReader(ps.getInputStream());
        String line;
        BufferedReader ir = new BufferedReader(i);
        String ret = "";
        while ((line = ir.readLine()) != null) {
            if (line.contains("Path")) {
                String[] arr = line.split("    ");
                ret = arr[arr.length - 1];
            }
        }
        return ret;
    }
    
}

JRT开发基本接近尾声了

文章来源:https://blog.csdn.net/zhanglianzhu_91/article/details/135416527
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。