Menu

Running Perl in Eclispe Epic Cygwin

Help
Jing Li
2008-09-05
2013-05-20
  • Jing Li

    Jing Li - 2008-09-05

    I have one Perl script which works when executing it directly in Cygwin window.

    It uses find to find a type of file in a directory and its subdirectories:

    my @jarfiles = split(' ',`find $bin_location -name "*.jar"`);

    But when run or debug it in Eclipse, it has error:
    sh: find: No such file or directory.

    I have set the Perl interpreter in Eclipse->Window->Preferences->perl EPIC.

    Do you have any idea?

    Thanks in advance.

    Jing

     
    • Jan Ploski

      Jan Ploski - 2008-09-05

      It looks like your PATH is different in both cases and therefore find.exe can't be located. You can specify PATH for a script in the launch configuration, or you could change the global environment so that Eclipse uses the same PATH as your Cygwin shell.

       
    • Jing Li

      Jing Li - 2008-09-07

      Hello Jan,

      Thank for your reply.

      The Cygwin path is:

      /usr/local/bin:
      /usr/bin:
      /bin:
      /usr/X11R6/bin:
      /usr/bin:
      C:/Program Files/MiKTeX 2.7/miktex/bin:
      /cygdrive/c/WINDOWS/system32:
      /cygdrive/c/WINDOWS:
      /cygdrive/c/WINDOWS/System32/Wbem:
      /cygdrive/c/Program Files/MIT/Kerberos/bin:
      /cygdrive/c/Program Files/OpenAFS/Client/Program:
      /cygdrive/c/Program Files/OpenAFS/Common:
      /cygdrive/C/jdk/bin:
      /cygdrive/c/jdk/jre/bin/client:
      /usr/bin:
      /cygdrive/c/Program Files/SSH Communications Security/SSH Secure Shell:
      /cygdrive/c/Program Files/Microsoft SQL Server/80/Tools/Binn:
      /cygdrive/c/Program Files/Microsoft SQL Server/90/Tools/binn:
      /cygdrive/c/Program Files/Microsoft SQL Server/90/DTS/Binn:
      /cygdrive/c/WINDOWS/Microsoft.NET/Framework/v2.0.50727:
      /cygdrive/c/Programs Files/MiKTex 2.6/miktex/bin:
      /cygdrive/c/Program Files/Ruby/bin:
      /cygdrive/c/Program Files/QuickTime/QTSystem/:
      /cygdrive/c/Program Files/Windows Imaging/:
      :
      /usr/bin:
      C:/Program Files/Microsoft Visual Studio/Common/Tools/WinNT:
      /cygdrive/c/Program Files/Microsoft Visual Studio/Common/MSDev98/Bin:
      /cygdrive/c/Program Files/Microsoft Visual Studio/Common/Tools:
      /cygdrive/c/Program Files/Microsoft Visual Studio/VC98/bin:
      /usr/lib/lapack

      The system variable is
      C:\cygwin\bin; C:\Program Files\MiKTeX 2.7\miktex\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\MIT\Kerberos\bin;C:\Program Files\OpenAFS\Client\Program;C:\Program Files\OpenAFS\Common;C:\jdk\bin;C:\jdk\jre\bin\client;C:\cygwin\bin;C:\Program Files\SSH Communications Security\SSH Secure Shell;C:\Program Files\Microsoft SQL Server\80\Tools\Binn;C:\Program Files\Microsoft SQL Server\90\Tools\binn;C:\Program Files\Microsoft SQL Server\90\DTS\Binn;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Programs Files\MiKTex 2.6\miktex\bin;C:\Program Files\Ruby\bin;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Windows Imaging\;

      There are  a lot of difference between the two paths.

      Could you please tell me which path in Cygwin PATH variable affect the find command?

      Thank you very much,

      Jing

       
      • Jan Ploski

        Jan Ploski - 2008-09-08

        Locate the find.exe file on your hard disk and add the directory which contains it to path.

         
        • Jing Li

          Jing Li - 2008-09-08

          Thanks for your reply.

          The find.exe is located in c:\cygwin\bin. I have added the path to the system path.

          I searched the web, and could not find out any helpful documents about how to run perl using Eclipse+EPIC+cygwin on windows. There are documents about Eclipse+EPIC+ActivePerl on windows.

          The scripts I work on work fine on linux, and I tested it works find in Cygwin. I really want to know how to run it in Eclipse+EPIC+cygwin as it allows me to debug the perl scripts.

          Can you point me the right way to do it?

          Thank you very much,

          Jing

           
          • Jan Ploski

            Jan Ploski - 2008-09-09

            In the run configuration dialog where you enter the project and script name, there is also an "Environment" tab where you can add environment variables for the script. I would try adding PATH to it with the value c:/cygwin/bin, if that doesn't work, I'd also try PATH with a Cygwin-style path (i.e., /usr/bin).

            I don't have Windows here so I can't experiment with Cygwin myself.

             
    • Jing Li

      Jing Li - 2008-09-10

      The Run/Debug configurations for these perl script are in Perl Local, which only have three tabs: configuration, arguments, and common. It does not include the environment tab.

      Thank you any way. I will keep find out how to do it. After I have the answer, I will post back to the forum.

      Thanks again,

      Jing

       
    • Jing Li

      Jing Li - 2008-09-10

      According to the document:
      http://www.perl.com/doc/manual/html/pod/perlrun.html, I added

      $ENV{PATH} = '/bin:/usr/bin';    # or whatever you need
      $ENV{SHELL} = '/bin/sh' if exists $ENV{SHELL};

      to the top of the script, it works in Eclipse+EPIC+cygwin.

      Thanks for all of your help.

      Jing

       

Log in to post a comment.