Java批处理不';不能很好地执行执行php应用程序的.bat文件

Java批处理不';不能很好地执行执行php应用程序的.bat文件,java,php,daemon,Java,Php,Daemon,我有个奇怪的问题。我创建了一个PHP应用程序,可以读取文件,然后移动到另一个目录。当我运行应用程序时,它工作正常 现在,我在java上创建了一个守护进程,它运行一个运行php脚本的.bat文件 My.bat是“invoker.bat”: 我的java守护进程如下: package edidemon; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date; im

我有个奇怪的问题。我创建了一个PHP应用程序,可以读取文件,然后移动到另一个目录。当我运行应用程序时,它工作正常

现在,我在java上创建了一个守护进程,它运行一个运行php脚本的.bat文件

My.bat是“invoker.bat”:

我的java守护进程如下:

package edidemon;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import javax.swing.Timer;
import java.util.Observable;
import java.util.Observer;

/**
 *
 * @author Bottago SA
 */
public class EDIDemon extends Observable {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        EDIDemon edid = new EDIDemon();
        edid.addObserver(new Observer() {
            @Override
            public void update(Observable o, Object arg) {
                //se invoca por medio de cmd al php lector EDI
                try {
                    String cmd = "invoker.bat";
                    Runtime.getRuntime().exec(cmd);
                } catch (Exception e) {
                    System.out.println(e.getMessage());
                }
            }
        });
        try {
            Thread.sleep(Long.MAX_VALUE);
        } catch (Exception e) {
        }

    }

    public EDIDemon() {
        Timer timer;
        timer = new Timer(12000, new ActionListener()//6000 es un segundo
        {
            @Override
            public void actionPerformed(ActionEvent e) {
                setChanged();
                notifyObservers(new Date());
            }
        });
        timer.start();
    }

}
读取并移动文件的php代码的一部分

if ($handle = scandir('C:/xampp/htdocs/EDI/Prepared')){

    foreach($handle as $entry){
        if (in_array($entry, array(".",".."))) continue;
        if(isset($entry)){      
          echo "<table><tr><td><strong>File: ".$entry."</strong></td></tr></table><br>";
          //---Mover archivos de un directorio a otro almacenados una vez leidos
          $subir = 'C:/xampp/htdocs/EDI/Prepared/';
          $path = $subir.$entry;
          $Uploaded = 'C:/xampp/htdocs/EDI/Uploaded/';
          $Failed = 'C:/xampp/htdocs/EDI/Failed/';

        $newName = file($path);
        $ponteiro = fopen ($path,"r");
        $arquivo = '';

        while (!feof ($ponteiro)) {
            $arquivo = $arquivo.fgets($ponteiro);
        }           
        fclose ($ponteiro);

        $padrao = fnc_resgata_padrao($arquivo);
        $segmento = fnc_obter_linha_segmento ($arquivo, "UNB");
        $sender = fnc_edi_recupera_compnte($segmento,2,0);
        $sendername = substr($sender, 0, 3);

        if ($padrao == "COARRI" && $sendername !== "TPG"){
            $a = fnc_processa_coarri(trim($arquivo));
            prc_mostra_coarri($a, $entry, $arquivo);
            copy($path, $Uploaded.$entry);
            unlink($path);              

        }
        elseif ($padrao == "COARRI" && $sendername == "TPG"){
            $a = fnc_processa_coarri_header_tpg(trim($arquivo));
            $a = fnc_processa_coarri_tpg(trim($arquivo)) +$a;
            prc_mostra_coarri($a, $entry, $arquivo);
            copy($path, $Uploaded.$entry);
            unlink($path);              
        }
        elseif ($padrao == "CODECO") {
            $a = fnc_processa_codeco(trim($arquivo));
            prc_mostra_codeco($a, $entry, $arquivo);
            copy($path, $Uploaded.$entry);
            unlink($path);              
        }
        elseif ($padrao == "BAPLIE") {              
            $a = fnc_processa_baplie(trim($arquivo));                                 
            prc_mostra_baplie($a);              
        }
        elseif ($padrao == "WESTIM"){
            $a = fnc_processa_westim(trim($arquivo));
            prc_mostra_westim($a, $entry, $arquivo);
        }
        else {
            copy($path, $Failed.$entry);
            unlink($path);
            echo "<table><tr><td><strong>Archivo incorrecto</strong></td></tr></table>";
        }           
       } else {
        echo "You need to select a file.  Please try again.";
       }
   }
}
if($handle=scandir('C:/xampp/htdocs/EDI/Prepared')){
foreach($handleas$entry){
如果(在数组中($entry,数组(“.”,“.”))继续;
如果(isset($entry)){
echo“文件:“.$entry.”
”; //---移动archivos de un directorio a otro almacenados una vez leidos $subir='C:/xampp/htdocs/EDI/Prepared/'; $path=$subir.$entry; $upload='C:/xampp/htdocs/EDI/upload/'; $Failed='C:/xampp/htdocs/EDI/Failed/'; $newName=文件($path); $ponteiro=fopen($path,“r”); $arquivo=''; 而(!feof($ponteiro)){ $arquivo=$arquivo.fgets($ponteiro); } fclose($ponteiro); $padrao=fnc_resgata_padrao($arquivo); $segmento=fnc_obter_linha_segmento($arquivo,“UNB”); $sender=fnc\u edi\u Recepera\u compnte($segmento,2,0); $sendername=substr($sender,0,3); 如果($padrao==“COARRI”&&$sendername!==“TPG”){ $a=fnc_processa_coarri(修剪($arquivo)); prc_mostra_coarri($a,$entry,$arquivo); 复制($path,$Uploaded.$entry); 取消链接($path); } elseif($padrao==“COARRI”&&$sendername==“TPG”){ $a=fnc_processa_coarri_header_tpg(修剪($arquivo)); $a=fnc_processa_coarri_tpg(修剪($arquivo))+$a; prc_mostra_coarri($a,$entry,$arquivo); 复制($path,$Uploaded.$entry); 取消链接($path); } elseif($padrao==“编解码器”){ $a=fnc_processa_codec(trim($arquivo)); prc_mostra_codeco($a,$entry,$arquivo); 复制($path,$Uploaded.$entry); 取消链接($path); } 埃尔塞夫($padrao==“BAPLIE”){ $a=fnc_processa_baplie(trim($arquivo)); 中华人民共和国(一美元); } elseif($padrao==“威斯汀”){ $a=fnc_processa_westim(trim($arquivo)); prc_mostra_westim($a,$entry,$arquivo); } 否则{ 复制($path,$Failed.$entry); 取消链接($path); 回声“归档不正确”; } }否则{ echo“您需要选择一个文件。请重试。”; } } }
问题是,如果我只运行.bat,php应用程序读取的文件会像往常一样移动到另一个目录。但是,如果我运行守护程序(java应用程序),它只读取文件,插入数据库,但不移动到另一个目录


?有人能提供线索吗?

嗯,如果php在“运行”时以某种方式失败,您可能应该发布php代码java@RC. 我刚刚添加了php代码。
if ($handle = scandir('C:/xampp/htdocs/EDI/Prepared')){

    foreach($handle as $entry){
        if (in_array($entry, array(".",".."))) continue;
        if(isset($entry)){      
          echo "<table><tr><td><strong>File: ".$entry."</strong></td></tr></table><br>";
          //---Mover archivos de un directorio a otro almacenados una vez leidos
          $subir = 'C:/xampp/htdocs/EDI/Prepared/';
          $path = $subir.$entry;
          $Uploaded = 'C:/xampp/htdocs/EDI/Uploaded/';
          $Failed = 'C:/xampp/htdocs/EDI/Failed/';

        $newName = file($path);
        $ponteiro = fopen ($path,"r");
        $arquivo = '';

        while (!feof ($ponteiro)) {
            $arquivo = $arquivo.fgets($ponteiro);
        }           
        fclose ($ponteiro);

        $padrao = fnc_resgata_padrao($arquivo);
        $segmento = fnc_obter_linha_segmento ($arquivo, "UNB");
        $sender = fnc_edi_recupera_compnte($segmento,2,0);
        $sendername = substr($sender, 0, 3);

        if ($padrao == "COARRI" && $sendername !== "TPG"){
            $a = fnc_processa_coarri(trim($arquivo));
            prc_mostra_coarri($a, $entry, $arquivo);
            copy($path, $Uploaded.$entry);
            unlink($path);              

        }
        elseif ($padrao == "COARRI" && $sendername == "TPG"){
            $a = fnc_processa_coarri_header_tpg(trim($arquivo));
            $a = fnc_processa_coarri_tpg(trim($arquivo)) +$a;
            prc_mostra_coarri($a, $entry, $arquivo);
            copy($path, $Uploaded.$entry);
            unlink($path);              
        }
        elseif ($padrao == "CODECO") {
            $a = fnc_processa_codeco(trim($arquivo));
            prc_mostra_codeco($a, $entry, $arquivo);
            copy($path, $Uploaded.$entry);
            unlink($path);              
        }
        elseif ($padrao == "BAPLIE") {              
            $a = fnc_processa_baplie(trim($arquivo));                                 
            prc_mostra_baplie($a);              
        }
        elseif ($padrao == "WESTIM"){
            $a = fnc_processa_westim(trim($arquivo));
            prc_mostra_westim($a, $entry, $arquivo);
        }
        else {
            copy($path, $Failed.$entry);
            unlink($path);
            echo "<table><tr><td><strong>Archivo incorrecto</strong></td></tr></table>";
        }           
       } else {
        echo "You need to select a file.  Please try again.";
       }
   }
}