Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #29827

Re: A "current directory" concept for Java...

From Martin Gregorie <martin@address-in-sig.invalid>
Newsgroups comp.lang.java.programmer
Subject Re: A "current directory" concept for Java...
Date 2014-08-23 19:34 +0000
Organization A noiseless patient Spider
Message-ID <ltaqbk$gnc$1@dont-email.me> (permalink)
References <slrnlvet48.fp3.avl@login.logic.tuwien.ac.at> <lt85hb$gnk$1@dont-email.me> <slrnlvfl43.fp3.avl@login.logic.tuwien.ac.at> <lta871$22r$1@dont-email.me> <slrnlvhgf8.fp3.avl@login.logic.tuwien.ac.at>

Show all headers | View raw


On Sat, 23 Aug 2014 16:31:36 +0000, Andreas Leitgeb wrote:

> Martin Gregorie <martin@address-in-sig.invalid> wrote:
>> On Fri, 22 Aug 2014 23:38:43 +0000, Andreas Leitgeb wrote:
>>> I'll need to emulate some kind of current directory,
>> If you haven't already done so, take a look at File.listFiles() and its
>> filter-equipped siblings.
> 
> Yep, I think I also missed that in Path...  Good to know that I'll just
> have to use (good old) java.io for that.
> 
>>> Eventually I need to spawn processes, which then need that emulated
>>> current directory to be their initial real current directory.
>> Do these have to be Java processes?
> 
> No.
> At least, I already found myself, how to pass a directory to the
> ProcessBuilder. :)
>
Cool. It all looks straightforward - at least for UNIX/Linux. To run 
'myprocess' against each file in the directory you'd modify my 
processDirectory method to look like this:

void processDirectory(File dir)
{
   File flist[] = f.listFiles();
   for (int i = 0; i < flist.length; i++
   {
      if (flist[i].isDirectory())
         processDirectory(new File(dir, flist[i].getName()));
      else 
      {
         ProcessBuilder pb = new ProcessBuilder("myprocess", 
                                                flist[i].getname());
         pb.directory(dir);
         Process p = pb.start();
         /* deal with process i/o streams */
         int exitValue = p.waitFor();
         /* see if the process exited normally */
      }
   }
}

It looks to me as if ProcessBuilder is very similar to C's exec() 
functions. The above is not intentionally teaching you to suck eggs: 
apologies if you already know what it shows. Apart from the point that 
there doesn't seem to be any way to make connections to the new Process's 
i/o streams before the command it controls starts to execute I can see 
only one bijou snaggette which might affect code portability: the meaning 
of 'current directory'.

In a UNIX/Linux environment relative file names are relative to the 
directory the user is in when a command is issued, but in at least some 
circumstances Windows programs act as though the 'current directory' is 
the one the program was loaded from. I've noticed this difference when 
running Windows programs on a Linux box under Wine but am unclear when it 
occurs: might it apply when a program is launched by clicking an icon but 
not when its launched from a command line or a user-written CMD file?


-- 
martin@   | Martin Gregorie
gregorie. | Essex, UK
org       |

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

A "current directory" concept for Java... Andreas Leitgeb <avl@auth.logic.tuwien.ac.at> - 2014-08-22 16:49 +0000
  Re: A "current directory" concept for Java... Jeff Higgins <jeff@invalid.invalid> - 2014-08-22 14:50 -0400
  Re: A "current directory" concept for Java... Jeff Higgins <jeff@invalid.invalid> - 2014-08-22 15:10 -0400
  Re: A "current directory" concept for Java... Martin Gregorie <martin@address-in-sig.invalid> - 2014-08-22 19:26 +0000
    Re: A "current directory" concept for Java... Andreas Leitgeb <avl@auth.logic.tuwien.ac.at> - 2014-08-22 23:38 +0000
      Re: A "current directory" concept for Java... Martin Gregorie <martin@address-in-sig.invalid> - 2014-08-23 14:24 +0000
        Re: A "current directory" concept for Java... Andreas Leitgeb <avl@auth.logic.tuwien.ac.at> - 2014-08-23 16:31 +0000
          Re: A "current directory" concept for Java... Martin Gregorie <martin@address-in-sig.invalid> - 2014-08-23 19:34 +0000
            Re: A "current directory" concept for Java... Andreas Leitgeb <avl@auth.logic.tuwien.ac.at> - 2014-08-24 08:42 +0000
              Re: A "current directory" concept for Java... Martin Gregorie <martin@address-in-sig.invalid> - 2014-08-24 10:37 +0000
                Re: A "current directory" concept for Java... Andreas Leitgeb <avl@auth.logic.tuwien.ac.at> - 2014-08-24 13:41 +0000
                Re: A "current directory" concept for Java... Martin Gregorie <martin@address-in-sig.invalid> - 2014-08-24 18:33 +0000
                Re: A "current directory" concept for Java... Andreas Leitgeb <avl@auth.logic.tuwien.ac.at> - 2014-08-24 22:33 +0000
                Re: A "current directory" concept for Java... Martin Gregorie <martin@address-in-sig.invalid> - 2014-08-25 00:14 +0000
  Re: A "current directory" concept for Java... Jeff Higgins <jeff@invalid.invalid> - 2014-08-22 19:45 -0400
    Re: A "current directory" concept for Java... Andreas Leitgeb <avl@auth.logic.tuwien.ac.at> - 2014-08-23 15:32 +0000
      Re: A "current directory" concept for Java... Jeff Higgins <jeff@invalid.invalid> - 2014-08-23 12:49 -0400
      Re: A "current directory" concept for Java... Jeff Higgins <jeff@invalid.invalid> - 2014-08-23 17:40 -0400
  Re: A "current directory" concept for Java... Jan Burse <janburse@fastmail.fm> - 2014-08-23 10:31 +0200
    With new Path (Re: A "current directory" concept for Java...) Jan Burse <janburse@fastmail.fm> - 2014-08-23 10:48 +0200
      Re: With new Path (Re: A "current directory" concept for Java...) Andreas Leitgeb <avl@auth.logic.tuwien.ac.at> - 2014-08-23 14:38 +0000
  Re: A "current directory" concept for Java... Roedy Green <see_website@mindprod.com.invalid> - 2014-08-23 05:31 -0700

csiph-web