This topic has been archived. It cannot be replied.
-
工作学习 / IT技术讨论 / 请教JAVA问题:用FileInputStream(String name)打开一个文件,不想在文件名中用绝对路径,能不能用相对路径?即是在运行时在环境变量中设。或者干脆不指定任何路径,那么怎么设定缺省路径呢?
-ccl(cl);
2002-10-3
(#779777@0)
-
再请教,如何找到并修改 system property user.dir ? 还有,java 运行命令中的 -D<name>=<value> set a system property 有帮助吗?谢谢。
-ccl(cl);
2002-10-3
(#779871@0)
-
Try this, command line works as well.System.out.println(System.getProperties().get("user.dir"));
System.getProperties().setProperty("user.dir","c:\\test");
System.out.println(System.getProperties().get("user.dir"));
-yuanzidan(原子弹);
2002-10-3
{190}
(#779914@0)
-
看来正是我问的东西,我明天试一试。还有,要是我要打开的文件在一个JAR里面,怎么又指定JAR本身的路径又指定JAR内要打开的文件的路径呢?谢谢。
-ccl(cl);
2002-10-3
(#779942@0)
-
my god. you just remind me how much java I forget . 5555555~~~~~~~~~
-henhen(哼哼~~,找工ing~~~~);
2002-10-3
(#779963@0)
-
what u mean "JAR本身的路径"
-yuanzidan(原子弹);
2002-10-3
(#779988@0)
-
比方说,C:\TEST\JAVATEST\.AAAAA.JAR,在这个AAAAA.JAR 里面有个文件叫 DIR1\DIR2\DIR3\AFILE.TXT, 我要是想打开这个 AFILE.TXT,我是不是得指明这两个路径?(写到这,我好象觉得JAVA做不了这样的东东)
-ccl(cl);
2002-10-4
(#781394@0)
-
FYI: Retrieving Resources from JAR fileshttp://java.sun.com/products/javawebstart/docs/developersguide.html
http://www.vamphq.com/talk/jug-jan-2002/slides.html#jws-36
-yuanzidan(原子弹);
2002-10-4
{129}
(#781643@0)
-
try getClass().getResource(...).
-ray236(ray);
2002-10-3
(#780408@0)
-
看来似乎对我的问题有帮助,只是我JAVA只懂一点点,在这http://java.sun.com/j2se/1.4.1/docs/api/java/lang/Object.html#getClass() 游了半天泳,试了半天连compile都不过,看能再详细点儿吗?
-ccl(cl);
2002-10-4
(#781399@0)
-
如果你的main()所在的CLASS也来自同一个JAR的话,
可用:
this.getClass().getResourceAsStream("yourfile.txt");
返回一个 InputStream .
-ray236(ray);
2002-10-4
(#781567@0)
-
编译问题
TST.java:28: non-static method getClass() cannot be referenced from a static context
System.out.println(XXX.getClass().getResourceAsStream("myfile.txt") );
其中XXX我试过this和其它CLASS名字,都不行。
-ccl(cl);
2002-10-4
(#781698@0)
-
The error is because that the main() is a static method. you can not use this directly inside main() method.import java.io.InputStream;
class Test {
......
InputStream getFile(String fileName) {
return this.getClass().getResourceAsStream(fileName);
}
public static void main(String[] args) {
......
Test test = new Test();
InputStream in = test.getFile("myFile.txt");
......
}
}
-ray236(ray);
2002-10-4
{353}
(#782032@0)
-
是我想要的东西,试了之后发现这方法行不通。原因是,如果我改了 user.dir 指向我的文件后,系统也去新的 user.dir 那儿找东西,结果还是得把我那个特别的文件和别的放在一起,我还是不能把我的文件放在我想放的地方。
-ccl(cl);
2002-10-4
(#781374@0)
-
I am not suer if i understand your question well or not. .Properties is nothing but a Hashtable, you can put your own property in it. Why stick to "user.dir"?C:\test> java -DmyFilePath=c:\temp\ccl\ttt Test
System.out.println(System.getProperties().get("myFilePath"));
-yuanzidan(原子弹);
2002-10-4
{116}
(#781639@0)
-
这个行,刚才我是加不进自己的property, 就以为不能自定义,其实刚才我是把 -D 选项放在 test (class) 的后边而被坎掉了。
java -DmyFilePath=XXXXXXX test (这个行)
java main -DmyFilePath=XXXXXXX (这个不行)
-ccl(cl);
2002-10-4
(#781785@0)