[英]calling stand alone java application from a java servlet
我是Java新手。 我一直在尝试做一些Java应用程序开发。
我创建了一个独立的Java应用程序。 它是一个基本的计算器应用程序,它执行基本操作,如加,减,乘和除。 它是使用Java swing和AWT开发的。
我有一个Java Servlet应用程序,该应用程序从用户那里获取两个输入(数字)并返回结果。 基本上,不管基本计算器做什么,Servlet都可以对数字进行此类操作,然后将结果返回给Web浏览器的客户端。 (客户端只是一个HTML文件)
我不想由servlet进行操作,而是想从servlet中调用独立的应用程序来进行操作,然后将结果返回给servlet。 然后,servlet将结果返回给客户端。 是否可以从Servlet调用独立的Java应用程序。 如果是这样,有什么不同的方式?
要调用您的应用程序,您必须根据操作系统编写bat或sh文件。 -使用processbuilder调用命令-示例代码符合您的要求
if (osname.indexOf("nux") >= 0 || osname.indexOf("nix") >= 0)
{
//for sending request to sh file
filePath = request.getSession().getServletContext().getRealPath("")+"/WEB-INF/classes/";
cmdList.add("sh");
cmdList.add("callDesktopApp.sh");
cmdList.add(path);
}
else
{
// for windows
String jrePath="";
String f="C:/Windows/SysWOW64";
if(new File(f).exists())
{
jrePath="C:\\Program Files (x86)\\Java\\jre6\\bin\\java";
jrePath="\""+jrePath+"\"";
}
else
{
jrePath="C:\\Program Files\\Java\\jre6\\bin\\java";
jrePath="\""+jrePath+"\"";
}
filePath = request.getSession().getServletContext().getRealPath("")+"\\WEB-INF\\classes\\";
cmdList.add("cmd");
cmdList.add("/c");
cmdList.add("callDesktopApp.bat");
cmdList.add(path);
cmdList.add(jrePath);
}
pb=new ProcessBuilder(cmdList);
pb.directory(new File(filePath));
process = pb.start();
//Read out dir output
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
is.close();
isr.close();
}
希望对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.