import java.applet.*; 
import java.awt.*; 
import java.io.*; 
public class FlashTest extends Applet 

    String str2; 
    public void init() 
    { 
str2 = new File(System.getProperty("user.dir") + "\\" + "file.txt").getPath(); 
System.out.println("-----------"+str2); 
    } 
    public void paint(Graphics g) 
    { 
    g.setColor(Color.black); 
g.drawString(str2,100,100); 
    } 
} <HTML> 
<HEAD> 
</HEAD> 
<BODY BGCOLOR="000000"> 
<CENTER> 
<APPLET 
code = "FlashTest.class" 
width = "500" 
height = "300" 

</APPLET> 
</CENTER> 
</BODY> 
</HTML> 我用JCreator编译,工程目录是:C:\JCreatorV3\MyProjects\FlashTest 
通过JCreator运行,str2内容是:C:\JCreatorV3\MyProjects\FlashTest\classes\file.txt我通过IE打开(自己配了个tomcat,http://localhost:8080就指向了C:\JCreatorV3\MyProjects\FlashTest\classes\FlashTest.htm), 
Str2内容是:C:\Documents and Settings\Administrator\桌面\file.txt 
其实我希望str2的内容不变化,是一个固定的地址(最好是URL格式的)。 我将来是需要把这个Applet放在linux服务器上,然后在windows客户器上IE访问。 所以通过参数指定是不行的。
如果把参数指到linux目录(如/home/applet/file.txt)下,在windows机上还是不不能找到file.txt文件,找的地方好象是在windows下找的。 
但是把参数指定为C:\applet\file.txt,然后在客户机的c:\applet\目录下放file.txt文件就能正常访问。 
我希望file.txt从服务器上拿。。 

解决方案 »

  1.   

    用相对路径试试public void init() { 
      String curClassPath = this.getClass().getClassLoader().getResource(".").getCanonicalPath();
      str2 = new File(curClassPath,"file.txt").getPath(); 
      System.out.println("-----------"+str2); 

    //this.getClass().getClassLoader().getResource(".").getPath() 得到的是当前的列文件,你可以改变相对路径到file.txt
    //如 new File(curClassPath,"../file.txt").getCanonicalPath()
      

  2.   

    yywl62 :提示getCanonicalPath()不可识别。。
    import java.applet.*; 
    import java.awt.*; 
    import java.io.*;还需要什么类呢?
      

  3.   

    getCanonicalPath()返回的是File类型的,怎么能赋值给String呢?
      

  4.   


    //java.io.File
    String getCanonicalPath() 
    //返回此抽象路径名的规范路径名字符串。