如何使用相对路径获取URL

时间:2010-09-08 07:27:15

标签: java

我有一个网址:

URL url=new URL("http://www.abc.com/aa/bb/cc/file.html");

和相对路径:

String relativePath="../file2.html"; //maybe is "/file3.html"

我希望http://www.abc.com/aa/bb/file2.html使用变量urlrelativePath

怎么做?

6 个答案:

答案 0 :(得分:49)

new URL(url, relativePath);

答案 1 :(得分:9)

尝试在课程URI而不是URL上运行winth。

从您的网址获取URI:

java.net.URI anURI=url.toUri();

然后,解析相对URI:

URI resultURI=anURI.resolve(relativePath);

最后,要获取URL类型,请使用URI结果变量的de方法 toUrl(),然后就可以了。

答案 2 :(得分:8)

如果要构建指向相对文件的URL,可以使用:

URL url = new URL(new URL("file:"), "./myLocalFile.txt");

答案 3 :(得分:2)

构建相对URL时,请记住基础是当前包的路径,而不是文件。我的意思是:referer文件在.../myProject/src/pckg/javafile.java中,并且被重新命名的文件在.../myProject/some-other/nice.file中,那么相对引用应该如下所示:

URL url = new URL(new URL("file:"), "./../some-other/nice.file");

这对我也有用:

URL url = new URL("file:./../some-other/nice.file");

答案 4 :(得分:0)

我发现有效的方法是:

<import resource="file:${CONFIG_PATH}/ldap-realm.xml"/>

<!-- SHIRO  Access control -->
<bean id="securityManager" class="com.cgi.apps.centaur.engine.access.realm.IPOverridingSecurityManager">
    <property name="realms" ref="shiroRealms"/>
    <property name="cacheManager" ref="memoryConstrainedCacheManager"/>
    <property name="sessionManager" ref="sessionManager"/>
</bean>

<bean id="sessionManager" class="com.cgi.apps.centaur.engine.access.realm.IPOverridingSessionManager">
</bean>

<bean id="memoryConstrainedCacheManager" class="org.apache.shiro.cache.MemoryConstrainedCacheManager"/>

答案 5 :(得分:-1)

这适用于我的代码
URL url=Myclass.class.getResource("/com/fnf/si/DepAcctInq_V02.wsdl");