美文网首页随笔-生活工作点滴
通过Java程序打开TortoiseSVN版本库浏览器

通过Java程序打开TortoiseSVN版本库浏览器

作者: 李北北 | 来源:发表于2019-07-05 17:26 被阅读7次

    最近尝试使用Java代码代码打开TortoiseSVN版本库浏览器,这样就可以通过web页面点击打开指定路径的SVN版本库目录,最后找到了一个实现方案。

    正常操作TortoiseSVN打开版本库的步骤如图所示,我们需要通过程序代码实现这个过程

    正常 image.png

    1、TortoiseSVN有提供命令行操作方式,通过如下命令可以打开TortoiseSVN的URL路径输入界面

    TortoiseProc.exe /command:repobrowser
    

    2、既然可以打开版本库浏览器的输入URL界面,接下来自然就是填充SVN路径并且点击确认,然后就可以打开版本库目录界面了。
    实现这个功能可以先在Java中将SVN路径复制到剪切板,其代码如下:

    /**
         * <pre>
         * 将内容复制到粘贴板
         * </pre>
         * @author 北北
         * @date 2019年6月21日上午10:01:12
         * @param content
         */
        public static void copyToClipboard(String content) {
            //获取系统剪切板
            Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
            //构建String数据类型
            StringSelection selection = new StringSelection(content);
            //添加文本到系统剪切板
            clipboard.setContents(selection, null);
        }
    

    然后通过VBS脚本执行打开路径的命令(也就是第1步的打开SVN路径输入界面的命令),我们知道打开这个界面后,会自动把粘贴板中的SVN路径粘贴到SVN路径输入框中,最后一步就是点击一下确认键就可以了。
    这两个步骤都可以通过VBS脚本来实现,脚本代码如下:

    #VBS脚本filePath:D:/.../openSvnRepoBrowser.vbs, 内容如下:
    
    Set objShell = CreateObject("Wscript.Shell") 
    With objShell
    .Run "TortoiseProc.exe /command:repobrowser" //此处执行CMD命令行
    WScript.Sleep 1000
    .SendKeys "{ENTER}" //此处发送回车键
    .SendKeys "~"
    End With
    Set objShell = Nothing
    

    然后通过如下Java代码调用上述openSvnRepoBrowser.vbs脚本,即可实现目标功能

    /**
         * <pre>
         * 打开文件/文件夹桌面会话
         * </pre>
         * @author 北北
         * @date 2019年1月10日上午11:48:36
         */
        public static String openFileDesktop(String filePath) {
            //解决Tomcat内启动无法打开指定程序问题
            System.setProperty("java.awt.headless", "false");
            if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.OPEN)) {
                File file = new File(filePath);
                if (file.exists()) {
                    try {
                        Desktop.getDesktop().open(file);
                        return "";
                    } catch (Exception e) {
                        logger.error("打开文件或文件夹失败:" + filePath, e);
                        return "打开文件或文件夹失败:" + filePath + "<br>异常信息:" + e.getMessage();
                    }
                } else {
                    return "文件或文件夹不存在:" + filePath;
                }
            }
            return "不支持打开!";
        }
    

    3、需要注意的是:我分别尝试了1.8.3、1.11.0、1.12.0三个版本的TortoiseSVN,最后只有1.11.0版本可以实现上述功能。

    image.png

    这里提供TortoiseSVN-1.11.0的下载链接:TortoiseSVN-1.11.0

    image.png

    参考文章:命令行使用TortoiseSVN

    相关文章

      网友评论

        本文标题:通过Java程序打开TortoiseSVN版本库浏览器

        本文链接:https://www.haomeiwen.com/subject/vlvehctx.html