Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Python输出未显示在jar文件中_Java_Python - Fatal编程技术网

Java Python输出未显示在jar文件中

Java Python输出未显示在jar文件中,java,python,Java,Python,我创建了一个JavaGUI,它从用户那里获取值并将其发送到python文件进行处理,然后将python文件的输出显示到JavaGUI上。这在eclipse上工作得非常好,但是当我将其导出到jar文件中时,不会显示输出。我见过很多其他类似的问题,但它们并没有给出一个对我有帮助的解决方案 这就是我如何将python脚本连接到java的方法 public void connection(String name) { ProcessBuilder pb= new ProcessBuilder("pyt

我创建了一个JavaGUI,它从用户那里获取值并将其发送到python文件进行处理,然后将python文件的输出显示到JavaGUI上。这在eclipse上工作得非常好,但是当我将其导出到jar文件中时,不会显示输出。我见过很多其他类似的问题,但它们并没有给出一个对我有帮助的解决方案

这就是我如何将python脚本连接到java的方法

public void connection(String name)
{
 ProcessBuilder pb= new ProcessBuilder("python","recomold.py","--movie_name",name);
  ///System.out.println("running file");
  Process process = null;
 try {
  process = pb.start();
 } catch (IOException e1) {
  // TODO Auto-generated catch block
  e1.printStackTrace();
 }
  int err = 0;
 try {
  err = process.waitFor();
 } catch (InterruptedException e1) {
  // TODO Auto-generated catch block
  e1.printStackTrace();
 }
 // System.out.println("any errors?"+(err==0 ? "no" : "yes"));
 /* try {
  System.out.println("python output "+ output(process.getInputStream()));
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }*/
  try {
  matches.setText(output(process.getInputStream()));
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
}

private String output(InputStream inputStream) throws IOException {
 StringBuilder sb = new StringBuilder();
 BufferedReader br = null;
 try{
  br= new BufferedReader(new InputStreamReader(inputStream));
  String line = null;
  while((line=br.readLine())!=null)
  {
   sb.append(line+"\n");
   //descp.setText("<html><br/><html>");
   //sb.append("\n");
  }
 }
 finally
 {     
   br.close();     
 }
 return sb.toString();
}
公共无效连接(字符串名称)
{
ProcessBuilder pb=新的ProcessBuilder(“python”、“Recold.py”、“--movie_name”、name);
///System.out.println(“运行文件”);
Process=null;
试一试{
process=pb.start();
}捕获(IOE1异常){
//TODO自动生成的捕捉块
e1.printStackTrace();
}
int err=0;
试一试{
err=process.waitFor();
}捕捉(中断异常e1){
//TODO自动生成的捕捉块
e1.printStackTrace();
}
//System.out.println(“任何错误?”+(错误==0?“否”:“是”);
/*试一试{
System.out.println(“python输出”+输出(process.getInputStream());
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}*/
试一试{
matches.setText(输出(process.getInputStream());
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
私有字符串输出(InputStream InputStream)引发IOException{
StringBuilder sb=新的StringBuilder();
BufferedReader br=null;
试一试{
br=新的BufferedReader(新的InputStreamReader(inputStream));
字符串行=null;
而((line=br.readLine())!=null)
{
sb.追加(第+行“\n”);
//descp.setText(“
”); //某人附加(“\n”); } } 最后 { br.close(); } 使某人返回字符串(); }
您的Python脚本可能未包含在Jar中。你试过按照这篇文章中的建议手动添加吗?因为我使用的是WindowsSie,所以我无法做到这一点。暂时将归档文件的名称更改为.zip可能会起作用。然后,您可以尝试使用常规的archiver打开它?您的Python脚本可能没有包含在您的Jar中。你试过按照这篇文章中的建议手动添加吗?因为我使用的是WindowsSie,所以我无法做到这一点。暂时将归档文件的名称更改为.zip可能会起作用。然后你可以试着用你的普通档案员打开它?