我想强制执行应用程序运行的最小版本的JVM到1.6或更高(即1.6+).我的理解是你可以使用"-version:"命令行参数来完成这个.我试过了,它似乎在Linux下运行良好但在Windows下运行不正常.
LINUX
我在Linux机器上安装了JDK版本1.6.0_21.$ JAVA_HOME和$ PATH环境变量已设置为它们应该是什么.
我运行了以下内容:
$ java -version:1.6+ -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)
$ java -version:1.5+ -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)
$ java -version:1.7+ -version
Unable to locate JRE meeting specification "1.7+"
Run Code Online (Sandbox Code Playgroud)
一切似乎都在预料之中."版本:1.6+"和"版本:1.5+"应该可以工作,因为我安装了JDK 1.6.0_21,而"版本:1.7+"不应该因为我没有安装JDK 1.7.
视窗
我在Windows机器上安装了相同的JDK版本1.6.0_21(Windows 7更具体).%JAVA_HOME%和%PATH%环境变量已设置为它们应该是什么.
我运行了以下内容:
$ java -version:1.6+ -version
Unable to locate JRE meeting specification "1.6+"
$ …Run Code Online (Sandbox Code Playgroud) 我想解析以下XML文档来解析其中的所有实体:
<!DOCTYPE doc SYSTEM 'mydoc.dtd'>
<doc>&title;</doc>
Run Code Online (Sandbox Code Playgroud)
我的EntityResolver应该从数据库中获取具有给定系统ID的外部实体,然后执行解决方案,请参阅下面的插图:
private static class MyEntityResolver
{
public InputSource resolveEntity(String publicId, String systemId)
throws SAXException, IOException
{
// At this point, systemId is always absolutized to the current working directory,
// even though the XML document specified it as relative.
// E.g. "file:///H:/mydoc.dtd" instead of just "mydoc.dtd"
// Why??? How can I prevent this???
SgmlEntity entity = findEntityFromDatabase(systemId);
InputSource is = new InputSource(new ByteArrayInputStream(entity.getContents()));
is.setPublicId(publicId);
is.setSystemId(systemId);
return is;
}
}
Run Code Online (Sandbox Code Playgroud)
我都尝试使用DOM(DocumentBuilder的)和SAX(XMLReader的),实体解析器设置为MyEntityResolver(即setEntityResolver(new MyEntityResolver())),但systemId …
任何人都可以澄清两者之间的差异吗?
Javadoc对我的理解非常模糊.
我注意到的一件事是,如果我ManagementFactory.getPlatformMBeanServer()用来注册我的MBean,我可以在Jconsole中查看它们.但是,如果我使用,则不是这样MBeanServerFactory.createMBeanServer().
这是为什么?这是唯一的差异吗?
谢谢.
我怎么能写出一个响应来自铁阿贾克斯的承诺.
<iron-ajax id="listItems" method="GET" content-type="application/json" handle-as="json" last-response="{{items}}" on-error="handleErrorResponse"></iron-ajax>
this.data = {
get: function(sort, page, pageSize) {
return new Promise(function(resolve, reject) {
// Execute iron-ajax.
//...
// resolve(iron-ajax's response);
});
}
}
};Run Code Online (Sandbox Code Playgroud)
我有一个Java应用程序需要通过套接字连接到两台不同的机器上的两个不同的服务器.一台服务器已配置为侦听IPv4连接,而另一台服务器已配置为侦听IPv6连接.
现在,假设"host1"是侦听IPv4连接的服务器的计算机名称,而"host2"是侦听IPv6连接的服务器的计算机名称.我需要Inet4Address为"host1"和Inet6Address"host2"创建一个到每个服务器的套接字连接,如下所示:
Inet4Address inet4 = (Inet4Address)InetAddress.getByName("host1");
InetSocketAddress soc4 = new InetSocketAddress(inet4, 7777);
...
Inet6Address inet6 = (Inet6Address)InetAddress.getByName("host2");
InetSocketAddress soc6 = new InetSocketAddress(inet6, 7777);
...
Run Code Online (Sandbox Code Playgroud)
但是,出于向后兼容性原因,默认情况下,JVM优先使用IPv6地址上的IPv4地址.因此,在上面的代码中,第一次尝试连接到"host1"成功,但第二次尝试连接到"host2"失败,因为InetAddress.getByName("host2")返回an Inet4Address而不是Inet6Address.
我知道我可以将系统属性设置java.net.preferIPv6Addresses为true以优先选择IPv4上的IPv6地址,但这反过来导致第二次尝试连接到"host2"成功,但第一次尝试连接到"host1"失败(!)因为InetAddress.getByName("host1")返回一个Inet6Address代替Inet4Address.
系统属性java.net.preferIPv6Addresses只被读取一次(参见InetAddress line 212-218),因此即使我将其值设置为true后将其值更改为false也不会产生任何影响.
那么在这种情况下我能做些什么呢?这似乎是一个普遍的问题,所以必须有一种方法可以做到这一点.
请注意,我当然可以使用InetAddress.getByAddress(),并提供每台机器的IP地址,而不是明确要回的Inet4Address和Inet6Address,但我并不想这样做,除非我真的要.请其他解决方案.
哦,我正在使用java 1.6.0_19以防万一.
谢谢!
mvn site:site自从我将maven-surefire-report-plugin更新到2.8版之后,我的项目在执行期间开始失败,该版本仅在大约一周前发布.
这是一个例外:
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] org.apache.maven.doxia.siterenderer.sink.SiteRendererSink.unknown(Ljava/lang/String;[Ljava/lang/Object;Lorg/apache/maven/doxia/sink/SinkEventAttributes;)V
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.AbstractMethodError: org.apache.maven.doxia.siterenderer.sink.SiteRendererSink.unknown(Ljava/lang/String;[Ljava/lang/Object;Lorg/apache/maven/doxia/sink/SinkEventAttributes;)V
at org.apache.maven.plugins.surefire.report.SurefireReportGenerator.doGenerateReport(SurefireReportGenerator.java:76)
at org.apache.maven.plugins.surefire.report.SurefireReportMojo.executeReport(SurefireReportMojo.java:200)
at org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:190)
at org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:144)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at hudson.maven.agent.ComponentInterceptor.invoke(ComponentInterceptor.java:47)
at hudson.maven.agent.PluginManagerInterceptor$3.invoke(PluginManagerInterceptor.java:229)
at $Proxy7.generate(Unknown Source)
at org.apache.maven.plugins.site.ReportDocumentRenderer.renderDocument(ReportDocumentRenderer.java:139)
at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.renderModule(DefaultSiteRenderer.java:269)
at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.render(DefaultSiteRenderer.java:101)
at org.apache.maven.plugins.site.SiteMojo.renderLocale(SiteMojo.java:133)
at org.apache.maven.plugins.site.SiteMojo.execute(SiteMojo.java:100)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
at org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at …Run Code Online (Sandbox Code Playgroud) 双箭头参数在以下代码中的含义是什么?
const update = x => y => {
// Do something with x and y
}
Run Code Online (Sandbox Code Playgroud)
与以下相比有何不同?
const update = (x, y) => {
// Do something with x and y
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我根本无法找到一种方法来做到这一点。有谁知道这是否支持?谢谢。
javascript response-headers graphql apollo-client react-hooks
我使用构建目标为我的项目设置Hudson,mvn clean deploy site:site每隔午夜运行一次构建,并且每当有新的更改时.
我一直想知道的一件事是我是否应该包含deploy在构建目标中,因为如果我刚刚发布了我的项目的1.0.0版本(我已经将pom更改为版本1.0.0并提交了它),那么可能会发生这种情况.还没有将版本号增加到1.0.1-SNAPSHOT几天,我最终会在不同的时间部署多个不同的1.0.0版本.
但我看到人们正在使用deploy哈德森的构建目标 - 我想知道他们是如何处理这个问题的.
实际上与Maven一起发布的正确方法是什么?感谢您的任何指示!
我已经过时了,但我刚刚升级了我的项目以使用JDK 1.4中的JDK 1.5,现在运行时mvn javadoc:javadoc遇到以下javadoc警告:
[WARNING] javadoc: warning - Multiple sources of package comments found for package "com.a"
[WARNING] javadoc: warning - Multiple sources of package comments found for package "com.b"
[WARNING] javadoc: warning - Multiple sources of package comments found for package "com.c"
[WARNING] javadoc: warning - Multiple sources of package comments found for package "com.a"
Run Code Online (Sandbox Code Playgroud)
我需要做些什么来修复它们?从JDK 1.4到1.5有什么变化吗?
谢谢!
java ×7
javascript ×3
maven ×2
ajax ×1
currying ×1
ecmascript-6 ×1
graphql ×1
hudson ×1
inetaddress ×1
ipv4 ×1
ipv6 ×1
iron-ajax ×1
javadoc ×1
jconsole ×1
jmx ×1
maven-2 ×1
mbeans ×1
packages ×1
polymer ×1
promise ×1
react-hooks ×1
release ×1
sockets ×1
version ×1
warnings ×1
windows ×1
xml-parsing ×1