user.dir property

Kresten Krab Thorup krab@eos.dk
Sat Apr 1 00:00:00 GMT 2000


Here's a question. 
I'm trying to set the property user.dir and thereby effectively cd'ing
to a given directory. The following piece of code tries do do that, but
fails on JDK1.2.2. The code does the following
create file "/tmp/foo.bar"
set user.dir = "/tmp"
read "foo.bar"
Obviously, this is only interesting if the original value of "user.dir"
is different from "/tmp".
The question is if this ought to be possible. As I read the javadoc for
java.lang.File, it seems that it should.
Any coments?
--Kresten
----------------------------------------------------------------------
import java.io.*;
public class TestUserDir
{
 public static void main (String[] args)
 throws IOException
 {
 String user_dir = System.getProperty ("user.dir");
 System.out.println ("user.dir = "+user_dir);
 File tmp = File.createTempFile ("foo", "bar");
 System.out.println ("tmpfile = "+tmp);
 File tmp2 = new File(tmp.getAbsolutePath ());
 System.out.println ("abstmp = "+tmp2);
 String parent = tmp2.getParent ();
 String file = tmp2.getName ();
 System.out.println ("parent = "+parent);
 System.out.println ("file = "+file);
 try {
 FileOutputStream fo = new FileOutputStream (tmp2);
 fo.write (27);
 fo.close ();
 } finally {
 System.out.println ("wrote one byte to "+tmp2);
 }
 System.setProperty ("user.dir", parent);
 System.out.println ("cd'ed to "+parent);
 try {
 FileInputStream fi = new FileInputStream (file);
 int b = fi.read ();
 if (b == 27)
	{
	 System.out.println ("sucessfully read from "+file);
	}
 } catch (IOException e) {
 System.out.println ("** failed to read "+file);
 throw e;
 }
 }
}
-- 
Kresten Krab Thorup, Director of Research
Eastfork Object Space (EOS), Margrethepladsen 3, 8000 Århus C, Denmark
Tel: +45 8732 8787 / Fax: +45 8732 8788 / Mob: +45 2343 4626


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /