使用C#利用cmd来调用java jar包获取其中的数据
其实也很简单,就是在C#中构建一个Process,启动jar包,并且给jar包传递参数
因为我并没有怎么学过JAVA,所以只写了个很小的Demo,就是根据传入的参数获取对应的数据
以下是JAVA Demo
package com.movie; import static java.lang.System.*; /**
* Created by rZH on 2018/11/21
*/
public class MovieInfo {
public static void main(String[] args){
//如果当前无请求参数
if ( args.length<=0){
//则程序终止
return;
} //构建数据对象
DataClass dc=new DataClass();
//获取传进来的第一个参数
String arg=args[0];
//使用数据对象根据参数来得到对应的数据
String str= dc.GetMovieListJson(arg);
//打印数据
out.println(str);
}
}
package com.movie; /**
* Created by rZH on 2018/11/21
*/
public class Movie {
public Movie(String name,String beginTime,String room,String date,String version,String language){
this.Name=name;
this.BeginTime=beginTime;
this.Data=date;
this.Room=room;
this.Version=version;
this.Language=language;
}
public String Name;
public String BeginTime;
public String Room;
public String Data;
public String Version;
public String Language;
}
package com.movie; import com.alibaba.fastjson.JSON; import java.util.ArrayList;
import java.util.List; /**
* Created by rZH on 2018/11/21
*/
public class DataClass {
public String GetMovieListJson(String date){
List<Movie> list=new ArrayList<Movie>();
list.add(new Movie("M1","13:00","1号厅","20181120","2D","国语"));
list.add(new Movie("M1","13:20","2号厅","20181120","2D","国语"));
list.add(new Movie("M2","13:40","3号厅","20181120","3D","国语"));
list.add(new Movie("M1","14:00","4号厅","20181120","2D","英语"));
list.add(new Movie("M1","15:00","5号厅","20181120","2D","国语"));
list.add(new Movie("M3","14:30","2号厅","20181120","2D","国语"));
list.add(new Movie("M1","15:20","3号厅","20181130","3D","国语"));
list.add(new Movie("M1","14:40","4号厅","20181120","2D","国语"));
list.add(new Movie("M1","16:00","5号厅","20181122","2D","原话"));
list.add(new Movie("M2","16:20","1号厅","20181120","3D","国语"));
list.add(new Movie("M1","16:35","2号厅","20181122","2D","国语"));
list.add(new Movie("M1","17:00","4号厅","20181120","2D","国语"));
list.add(new Movie("M2","17:20","3号厅","20181120","3D","国语"));
list.add(new Movie("M1","17:45","5号厅","20181120","2D","粤语"));
list.add(new Movie("M4","18:00","2号厅","20181120","2D","国语")); List<Movie> ml=new ArrayList<Movie>();
for(int i=0;i<list.size();i++){
if (list.get(i).Data.equals(date)){
ml.add(list.get(i));
}
} String str = JSON.toJSONString(ml);
return str;
}
}
额,原谅我真不会写JAVA,就这些代码我还是在网上东查西查才查出来的,也原谅我用C#的风格去写吧
接着就是C#里面的,这个方法是在网上找的,某个博主写的,网页关了我找不着本人了
我的一些配置是写在app.config文件里的
以下是该文件的内容
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<appSettings>
<!--cmd需要启动的程序路径-->
<add key="startPath" value="cmd.exe"/>
<!--cmd程序启动的程序命令-->
<add key="args" value="java -jar F:\JavaMovieDemo\out\artifacts\JavaMovieDemo_jar\JavaMovieDemo.jar"/>
</appSettings>
</configuration>
static void Main (string[] args)
{
//运行程序
string result= RunCmdAndGet (ConfigurationManager.AppSettings["args"]+ " 20181120");
Console.WriteLine ("从java包得到的数据是:\r\n");
Console.WriteLine (result);
Console.ReadKey ();
} /// <summary>
/// 启动CMD并且获取到数据
/// </summary>
/// <param name="query"></param>
public static string RunCmdAndGet (string query)
{
Process CmdProcess = new Process ();
CmdProcess.StartInfo.FileName = ConfigurationManager.AppSettings["startPath"]; CmdProcess.StartInfo.CreateNoWindow = true; // 不创建新窗口
CmdProcess.StartInfo.UseShellExecute = false; //不启用shell启动进程
CmdProcess.StartInfo.RedirectStandardInput = true; // 重定向输入
CmdProcess.StartInfo.RedirectStandardOutput = true; // 重定向标准输出
CmdProcess.StartInfo.RedirectStandardError = true; // 重定向错误输出 CmdProcess.StartInfo.Arguments = "/c " + query;//“/C”表示执行完命令后马上退出
CmdProcess.Start ();//执行 string result= CmdProcess.StandardOutput.ReadToEnd ();//获取返回值 CmdProcess.WaitForExit ();//等待程序执行完退出进程 CmdProcess.Close ();//结束
return result;
}
以下图片就是结果

使用C#利用cmd来调用java jar包获取其中的数据的更多相关文章
- Jmeter调用JAVA jar包传参
http://blog.csdn.net/xiazdong/article/details/7873767#
- 解析android framework下利用app_process来调用java写的命令及示例
解析android framework下利用app_process来调用java写的命令及示例 在android SDK的framework/base/cmds目录下了,有不少目录,这些目的最终都是b ...
- loadrunner 脚本开发-调用java jar文件远程操作Oracle数据库测试
调用java jar文件远程操作Oracle数据库测试 by:授客 QQ:1033553122 测试环境 数据库:linux 下Oracle_11g_R2 Loadrunner:11 备注:想学ora ...
- java打jar包 命令行cmd在当前路径打jar包
不尝试就永远不会知道真相. 今天搞webservice,需要将服务单独拉出来发布.打jar包的时候要打成aar包,所以用到cmd下的打jar包的命令. 当前路径打jar包,一定要先进到这个文件夹,然后 ...
- Jmeter调用自定义jar包
一. 场景 在测试过程中, 可能需要调用第三方jar包来生成测试数据或者使用java工具类来实现业务场景, 普遍的做法是手动调用jar包, 再把这些值赋给jmeter中的某个参数, 以满足业务测试需求 ...
- java jar包运行方法
http://java-beginner-liyun.iteye.com/blog/736752一.怎么打jar包 第一步:选中要打jar包的工程 第二步:鼠标右击,选择Export... 第三步:选 ...
- java jar包解析:打包文件,引入文件
java jar包解析:打包文件,引入文件 cmd下: jar命令:package包打包 javac命令:普通类文件打包 Hello.java: package org.lxh.demo; publi ...
- 利用命令行引用外部jar包以使程序正常执行的4种方法
声明:本博客为原创博客.未经同意.不得转载!原文链接为http://blog.csdn.net/bettarwang/article/details/30976069 平时写一些小的Java Demo ...
- 利用Maven把项目生成jar包供其他项目使用
每当搭建框架时,第一步就是为系统整理一个接一个的jar包.用多了就开始深思,如何把自己的项目也整成jar包,供他人使用呢? 近期一直在看徐晓斌所著:<Maven实战>.因自己学识不够,只是 ...
随机推荐
- 【cocos2d-x 仙凡奇缘-网游研发(2) 角色换线系统】
转载请注明出处:http://www.cnblogs.com/zisou/p/xianfan01.html 做一款游戏就先得制作好策划文档,和基本的人物世界构架的设计,然后架空在这样一个虚拟的世界中每 ...
- jzoj5878
tj:這道題可以想到排列組合 對於第一問,我們知道,左轉的次數比右轉次數多4,所以答案是c(n,n/2-2) 對於第二問,我們發現,不能出現下凹的情況,所以不能同時出現2個左拐,且路徑可以分為4段,且 ...
- CF 798B 渣渣题
题目链接:http://codeforces.com/contest/798/problem/B 此题是我打河工大校赛前一晚熬夜打CF时硬肛过去的B题,今天补题时,偶然看到dalao的代码,ORZ,s ...
- [Swift实际操作]七、常见概念-(10)使用UserDefaults和归档方式存取用户数据实际操作
在项目开发之中,你会经常需要将一些数据存储在本地,以便记录用户生产的数据或操作习惯.在项目文件夹上带点击鼠标右键.弹出右键菜单.本文将为你演示,存储用户数据的两种常用方式. 选择菜单中的创建新文件选项 ...
- [Swift实际操作]七、常见概念-(1).范围Range、ClosedRange和NSRange的使用实际操作
本文将为你解析区间的概念.在对字符串进行处理时,经常会使用到区间.例如获得字符串中从某个位置开始到另一个位置之间的内容. 首先导入需要使用到的框架 import Foundation 区间分为闭区间和 ...
- Google 团队效能研究 | 为什么雇用最聪明的人是远远不够的?
简评:Google 的一项团队效能研究结果,可能会让你重新认识如何建立一个优秀的团队. Google 的搜索业务可能最为人所知,但 Google 可不仅仅有搜索业务,它可能还是最擅于大数据研究的公司之 ...
- D06——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D06 20180821内容纲要: 面向对象初级学习 1 面向对象 2 类 (1)封装 (2)继承 (3)多态 3 小结 4 练习:选课系统 5 课外拓展:答题系 ...
- Hive Cli相关操作
landen@Master:~/UntarFile/hive-0.10.0$ bin/hive --database 'stuchoosecourse' -e 'select * from hidde ...
- python获取动态网站上面的动态加载的数据(selenium+Firefox)
最近突然想到以前爬取百度学术上的参考文献,大家可以看一下以前我的写的博客:http://www.cnblogs.com/ybf-yyj/p/7351493.html,但是如果利用这个方法,太痛苦了,需 ...
- 【数组】Rotate Image
题目: You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwis ...