你想获得的是该程序存放的地方吗?可能System.getProperties 能帮你。以下是jdk文档getProperties
public static Properties getProperties()Determines the current system properties. 
First, if there is a security manager, its checkPropertiesAccess method is called with no arguments. This may result in a security exception. The current set of system properties for use by the getProperty(String) method is returned as a Properties object. If there is no current set of system properties, a set of system properties is first created and initialized. This set of system properties always includes values for the following keys: Key Description of Associated Value 
java.version Java Runtime Environment version 
java.vendor Java Runtime Environment vendor 
java.vendor.url Java vendor URL 
java.home Java installation directory 
java.vm.specification.version Java Virtual Machine specification version 
java.vm.specification.vendor Java Virtual Machine specification vendor 
java.vm.specification.name Java Virtual Machine specification name 
java.vm.version Java Virtual Machine implementation version 
java.vm.vendor Java Virtual Machine implementation vendor 
java.vm.name Java Virtual Machine implementation name 
java.specification.version Java Runtime Environment specification version 
java.specification.vendor Java Runtime Environment specification vendor 
java.specification.name Java Runtime Environment specification name 
java.class.version Java class format version number 
java.class.path Java class path 
java.library.path List of paths to search when loading libraries 
java.io.tmpdir Default temp file path 
java.compiler Name of JIT compiler to use 
java.ext.dirs Path of extension directory or directories 
os.name Operating system name 
os.arch Operating system architecture 
os.version Operating system version 
file.separator File separator ("/" on UNIX) 
path.separator Path separator (":" on UNIX) 
line.separator Line separator ("\n" on UNIX) 
user.name User's account name 
user.home User's home directory 
user.dir User's current working directory 
Multiple paths in a system property value are separated by the path separator character of the platform. Note that even if the security manager does not permit the getProperties operation, it may choose to permit the getProperty(String) operation. 
Returns:
the system properties 
Throws: 
SecurityException - if a security manager exists and its checkPropertiesAccess method doesn't allow access to the system properties.
See Also:
setProperties(java.util.Properties), SecurityException, SecurityManager.checkPropertiesAccess(), Properties

解决方案 »

  1.   

    正如楼上所说的,System.getProperty,参数 user.dirString path=System.getProperty("user.dir");
      

  2.   

    用getProperty("user.dir");得到的目录和getConanicalPath();是一样的。其实问题在于我那个小程序有关package abc;语句,当程序执行时当前目录是package所在的目录,而不是实现这个取当前目录功能那个类所在的目录,因为这个实现的类可能在package的子目录中,因为java是将package的结构映射到目录上的。anyway,谢谢两位大侠的帮助。Thanks a lot!
      

  3.   

    可以用getAbsolutePath()吗???