在Java中,可以使用ProtectionDomain
類來獲取Jar包所在的目錄。
以下是一個示例代碼:
import java.security.CodeSource;
import java.security.ProtectionDomain;
public class JarPathExample {
public static void main(String[] args) {
ProtectionDomain protectionDomain = JarPathExample.class.getProtectionDomain();
CodeSource codeSource = protectionDomain.getCodeSource();
String jarPath = codeSource.getLocation().getPath();
System.out.println("Jar所在目錄:" + jarPath);
}
}
這段代碼首先通過getProtectionDomain()
方法獲取當前類的保護域(ProtectionDomain
)。然后,通過getCodeSource()
方法獲取Jar包的源碼(CodeSource
)。最后,通過getLocation()
方法獲取Jar包所在的位置,并使用getPath()
方法獲取Jar包所在目錄的路徑。
請注意,此代碼僅適用于已打包為Jar文件的應用程序。如果您的應用程序正在運行時,可以使用Class
類的getResource()
方法來獲取類路徑下的資源文件的路徑。例如:
String jarPath = JarPathExample.class.getResource("/your_resource_file").getPath();
其中your_resource_file
是資源文件的路徑。
請注意,獲取Jar包所在目錄的代碼只能在已打包為Jar文件的環境中使用。如果您在IDE中運行代碼,將無法獲取到Jar包的路徑。