整体思路:html引用URL protocol-本地注册表key,key对应某一c#写的exe可执行文件,由exe可执行文件调用cmd,cmd执行jar包。

1、添加注册表:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Print]
"URL Protocol"="d:\\Print\\SupplementPrint.exe"
@="PrintProtocol"
[HKEY_CLASSES_ROOT\Print\DefaultIcon]
@="d:\\Print\\SupplementPrint.exe,1"
[HKEY_CLASSES_ROOT\Print\shell]
[HKEY_CLASSES_ROOT\Print\shell\open]
[HKEY_CLASSES_ROOT\Print\shell\open\command]
@="\"d:\\Print\\SupplementPrint.exe\"\"%1\""

说明:第一行,注册版本信息,无需关注;2,、注册表中key值,html中也需要引用这个key“Print”,3、此key对应的exe文件。4、协议名称。。。

2、编写C#调用cmd.exe,cmd再调用jar包。

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Diagnostics;
using System.Text.RegularExpressions; namespace WindowsFormsApplication1
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
//string fullPath = System.Windows.Forms.Application.ExecutablePath;
//System.Console.WriteLine("Hello world");
//System.Console.WriteLine(fullPath);
//string fileName = System.IO.Path.GetFileName(fullPath);
//string folderPath = fullPath.Substring(,fullPath.Length-fileName.Length);
//string cmd = "start " + folderPath + " jre/bin/javaw - jar " + folderPath + "zte-mes-supplementPrint-javaFX-0.0.1-SNAPSHOT.jar";
//System.Console.WriteLine(cmd);
RunCmd(cmd);
} private static void RunCmd(string cmd)
{
Process p = new Process();
p.StartInfo.FileName = "cmd.exe"; p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
//string str = Console.ReadLine();
string str = @"java -jar c:\\Users\\10244896\\Desktop\\print\\zte-mes-supplementPrint-javaFX-0.0.1-SNAPSHOT.jar" + "&exit";
str = str.Trim().TrimEnd('&');
p.Start();
p.StandardInput.WriteLine(str); p.StandardInput.AutoFlush = true;
//p.StartInfo.Arguments = "java -jar c:\\Users\\10244896\\Desktop\\print\\zte-mes-supplementPrint-javaFX-0.0.1-SNAPSHOT.jar"; p.WaitForExit();
// throw new NotImplementedException();
}
}
}

说明:仅关注runCmd方法即可。

3、编写html

<a href="Print://hello">Print</a>

html实现调用jar包的更多相关文章

  1. Unity调用Android的两个方式:其一、调用jar包

    unity在Android端开发的时候,免不了要调用Java:Unity可以通过两种方式来调用Android:一是调用jar.二是调用aar. 这篇文章主要讲解怎么从无到有的生成一个jar包,然后un ...

  2. Loadrunner11.0调用Jar包

    又好几天不写东西了,是不是意味着最近没有大的进步,时时敲打自己. 今天把loadrunner如何调用Jar包搞定了,现在把配置的过程中需要注意的东西写下来,分享给小伙伴儿,减少他们在前行路上的弯路. ...

  3. winform调用jar包

    因为工作需要,需要做一个数据上传的程序,客户规定的是:数据接口采用http连接,采用JSON-RPC轻量级远程调用协议.所以决定用winform做一个管理界面(其中还包括其他的功能),java完成数据 ...

  4. (转载)Python 的 JPype 模块调用 Jar 包

    Python 的 JPype 模块调用 Jar 包 背景与需求 最近学习并安装使用了HttpRunner框架去尝试做接口测试,并有后续在公司推广的打算. HttpRunner由Python开发,调用接 ...

  5. Python调用jar包中的方法

    [本文出自天外归云的博客园] 需求 最近在后台项目代码中一段自定义的AES加解密的程序在平时的测试工作中应用频繁.因为写脚本经常会需要使用,而经过各种尝试,比如jpype等,都不尽如人意.最后转换思路 ...

  6. 如何制作Jar包并在android中调用jar包

    android制作jar包: 新建android工程,然后右击,点击导出,选择导出类型为Java下的JAR file,在java file specification 中不要选择androidmani ...

  7. jmeter 调用jar包 本地加密

    1.因为加密接口是有我们自己加密方式,所有加密包由开发提供,获得加密包后方式jmeter目录/lib/ext文件夹中 2.选择引入加密包 3.添加BeanShell Sampler和Debug Sam ...

  8. python实战===用python调用jar包(原创)

    一个困扰我很久的问题,今天终于解决了.用python调用jar包 很简单,但是网上的人就是乱转载.自己试都不试就转载,让我走了很多弯路 背景:python3.6 32位   + jre 32位  +  ...

  9. Unity调用Android的两种方式:其一、调用jar包

    unity在Android端开发的时候,免不了要调用Java:Unity可以通过两种方式来调用Android:一是调用jar.二是调用aar. 这篇文章主要讲解怎么从无到有的生成一个jar包,然后un ...

随机推荐

  1. django 连接mangodb 操作

    django项目连接MySQL需要配置很多东西,连接mango并不需要配置任何.

  2. Apache:SSLCertificateFile:文件不存在或为空(操作系统RHEL7)

    配置参数及报错信息(配置了TLS加密后httpd服务无法启动) 我在httpd.conf文件中引用了上面创建的文件.但在那之后,当我尝试RESTART Apache时,我遇到以下错误: 错误:SSLC ...

  3. TCP报文首段格式

    参考:https://www.bilibili.com/video/av9876107?from=search&seid=5217429010533979778 TCP(Transmissio ...

  4. 20165314 [第二届构建之法论坛] 预培训心得(Java版)

    安装IDEA配置JDKsourcepath啥的之前已经弄好了 克隆项目 emmm这次的代码托管部分好像比之前做的要简单,之前还要git config啥的,还有就是git clone不会提示要输入账号密 ...

  5. VC调用静态库、动态库

    静态库 // 相对路径 或者 绝对路径 #include "yourlib.h" //相对路径 或者 绝对路径 #pragma comment(lib, "yourlib ...

  6. Oracle 升级的必要性

    一.Oracle 历史 Oracle database 作为Oracle 公司的商业产品,凭借其稳定性和运行高效占据了全球三成以上的市场.并且主要是金融.政府等领域. Oracle 数据库拥有近40年 ...

  7. Punycode

    Punycode是一个根据RFC 3492标准而制定的编码系统,主要用于把域名从地方语言所采用的Unicode编码转换成为可用于DNS系统的编码 “中文域名”不被标准的解析服务器支持,需转化为Puny ...

  8. 叩响C#之门-继承

    就记录下一些概念,以供备忘. 一生二,二生三,三生万物.类类相生,生生不息.   重写和重载的区别: 重载是指同一个类中相同名称但参数不同的方法. 重写是指继承关系中,在派生类中重写由基类继承来的方法 ...

  9. Redis数据结构之sds基本操作函数

    本文及后续文章,Redis版本均是v3.2.8 本篇文章讲解sds基本操作函数,我们从源码角度来进一步理解. 一.sds创建函数和销毁 sds创建函数 /* Create a new sds stri ...

  10. 在react-native项目中使用iconfont自定义图标库(android)

    1. 安装react-native-vector-icons yarn add react-native-vector-icons react-native link 如果没有关联成功的话,可以参考官 ...