Java-如何在JNLP文件中自动获取IP地址?
在JNLP文件中,如何自动获取IP地址?例如:Java-如何在JNLP文件中自动获取IP地址?,java,jnlp,Java,Jnlp,在JNLP文件中,如何自动获取IP地址?例如: <?xml version="1.0" encoding="utf-8"?> <jnlp spec="1.0+" codebase="GET ip address here automatically" href="Test.jnlp"> 而不是手动将地址设置为:codebase=”http://10.10.10.1/“它不能那样做 您可以为10.10.10.1添加一个DNS条目,并将主机名放在该字段中,而不是IP地
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="GET ip address here automatically" href="Test.jnlp">
而不是手动将地址设置为:codebase=”http://10.10.10.1/“
它不能那样做
您可以为10.10.10.1
添加一个DNS条目,并将主机名放在该字段中,而不是IP地址,但它只是XML—无法从该行调用方法来运行代码并确定它应该连接到哪个IP地址。它无法做到这一点
您可以为
10.10.10.1
添加一个DNS条目,并将主机名放在该字段中,而不是IP地址,但它只是XML—无法从该行调用方法来运行代码并确定它应该连接到哪个IP地址。查看有关相对地址的官方文档,这可能会有所帮助(您可以完全避免指定服务器地址):查看有关相对地址的官方文档,这可能会有所帮助(您可以完全避免指定服务器地址):JNLP文件是一个静态资源。要做到这一点,您需要使用某种动态服务器端技术,如JSP来表示JNLP。JNLP文件是一个静态资源。要做到这一点,您需要使用某种动态服务器端技术,如JSP来表示JNLP。 如果您将JNLP文件托管在Java Web容器(例如Tomcat)中,而不是普通的HTTP服务器(例如Apache Web服务器),则可以使用Sun提供的JNLP Servlet。一些有趣的变量是$$codebase、$$site(请参阅下面的代码)。例如,JNLP文件中的$$site将由主机ip地址及其端口替换(例如http://10.10.10.1:8080
)
如果您将JNLP文件托管在Java Web容器(例如Tomcat)中,而不是普通的HTTP服务器(例如Apache Web服务器),则可以使用Sun提供的JNLP Servlet。一些有趣的变量是$$codebase、$$site(请参阅下面的代码)。例如,JNLP文件中的$$site将由主机ip地址及其端口替换(例如
http://10.10.10.1:8080
)
非常感谢。很抱歉,我刚刚意识到我发布的问题非常愚蠢。我所要做的就是完全删除代码库,让它正常工作。我发现到处都是JAVA文档,有时我会问一些愚蠢的问题。不用担心。我们都有不同的看法,有些人可能会觉得很明显,但另一些人会感到困惑s、 我经常遇到这种情况。非常感谢。我很抱歉,我刚刚意识到我发布的问题非常愚蠢。我所要做的就是完全删除代码库以使其正常工作。我发现到处都是JAVA文档,有时我会问一些愚蠢的问题。不用担心。我们都有不同的看法,什么可能是显而易见的对某些人来说,这让其他人感到困惑。这种情况一直发生在我身上。非常感谢。很抱歉,我刚刚意识到我发布的问题非常愚蠢。我所要做的就是完全删除代码库,让它正常工作。我发现JAVA文档到处都是,有时我会问一些愚蠢的问题。非常感谢。很抱歉,我只是我意识到我发布的问题非常愚蠢。我所要做的就是完全删除代码库以使其工作。我发现到处都是JAVA文档,有时我会问一些愚蠢的问题。
private String specializeJnlpTemplate(HttpServletRequest request, String respath, String jnlpTemplate) {
String urlprefix = getUrlPrefix(request);
int idx = respath.lastIndexOf('/'); //
String name = respath.substring(idx + 1); // Exclude /
String codebase = respath.substring(0, idx + 1); // Include /
jnlpTemplate = substitute(jnlpTemplate, "$$name", name);
// fix for 5039951: Add $$hostname macro
jnlpTemplate = substitute(jnlpTemplate, "$$hostname",
request.getServerName());
jnlpTemplate = substitute(jnlpTemplate, "$$codebase", urlprefix + request.getContextPath() + codebase);
jnlpTemplate = substitute(jnlpTemplate, "$$context", urlprefix + request.getContextPath());
// fix for 6256326: add $$site macro to sample jnlp servlet
jnlpTemplate = substitute(jnlpTemplate, "$$site", urlprefix);
return jnlpTemplate;
}