我用来创建一个tempfile,删除它并将其重新创建为一个目录:
tmpnam=`tempfile`
rm -f $tmpnam
mkdir "$tmpnam"
Run Code Online (Sandbox Code Playgroud)
问题是,另一个进程可能会得到一个相同的名称X,如果它在一个进程之后rm -f X和之前意外地执行tempfile mkdir X.
我可以通过安装工件install:install-file,但是如何下载工件?
例如:
mvn download:download-file -DgroupId=.. -DartifactId=.. -Dversion=LATEST
Run Code Online (Sandbox Code Playgroud) 它是否使用某种字节码修改原始类?
或者,也许Hibernate通过将给定对象与以前持久化的版本进行比较来获得脏状态?
我遇到了复杂对象的问题hashCode()和equals()方法.如果对象具有集合成员,并且循环引用也是一个问题,我觉得计算哈希代码会很慢.
如果Hibernate不会使用hashCode()/ equals()来检查脏状态,我想我不应该使用equals()/ hashCode()作为实体对象(而不是值对象),但我也担心如果相同的operator(==)是不够的.
所以,问题是:
Hibernate如何知道对象的属性是否发生了变化?
你建议覆盖复杂对象的hashCode()/ equals()方法吗?如果它们包含循环引用怎么办?
并且,
是hashCode()/ equals()只有这个id领域就足够了?
我刚刚开始使用elasticsearch.使用默认设置创建索引(5个分片,1个副本).然后我用附件插件索引~13G文本文件.结果,在Kibana Discover中搜索非常慢.但是,在控制台中搜索速度很快:
GET /mytext/_search
{
"fields": [ "file.name" ],
"query": {
"match": {
"file.content": "foobar"
}
},
"highlight": {
"fields": {
"file.content": {
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
为了调查它为什么这么慢,我安装了X-Pack.指南文档似乎并不全面,我没有进入安全配置.
不必登录elasticsearch的默认安装,但必须在安装X-Pack插件后登录.我对elasticsearch,kibana,x-pack的安全设置感到困惑,他们分享用户帐户了吗?毕竟,我通过以下方式获得身份验证:
curl -XPUT -uelastic:changeme 'localhost:9200/_shield/user/elastic/_password' -d '{ "password" : "newpass1" }'
curl -XPUT -uelastic:newpass1 'localhost:9200/_shield/user/kibana/_password' -d '{ "password" : "newpass2" }'
Run Code Online (Sandbox Code Playgroud)
这就是问题所在.我无法使用Java客户端登录org.elasticsearch.plugin:shield.很可能最新版本的盾牌依赖(2.3.3)与弹性搜索依赖(5.0.0-alpha)不匹配.
好吧,我可以禁用身份验证吗?
从节点配置:
GET http://localhost:9200/_nodes
"nodes" : {
"v_XmZh7jQCiIMYCG2AFhJg" : {
"transport_address" : "127.0.0.1:9300",
"version" : "5.0.0-alpha2",
"roles" …Run Code Online (Sandbox Code Playgroud) 我想配置Maven2使用sun-java6-jdk构建Java SE 1.6模块,并使用openjdk-7构建Java SE 1.7模块.可能吗?
然后Maven2应该自动选择正确的JDK来在一个命令中构建不同的模块.
例如,它应该是
$ mvn package
Run Code Online (Sandbox Code Playgroud)
代替
$ cd module1
$ update-alternatives ... jdk6 ...
$ mvn package
...
$ cd module2
$ update-alternatives ... jdk7 ...
$ mvn package
Run Code Online (Sandbox Code Playgroud)
PS这是一无所知的pom.xml文件,这些文件已经设置maven-compiler-plugin不同<source>,<target>价值观不同的模块.如果我选择使用openjdk-7,Maven2将生成1.6版本的类文件,但是使用openjdk-7而不是sun-java6-jdk.问题是如何配置Java SE配置文件.
我想在bash脚本中支持短期和长期选项,因此可以:
$ foo -ax --long-key val -b -y SOME FILE NAMES
Run Code Online (Sandbox Code Playgroud)
可能吗?
假设我有一些bash数组:
A1=(apple trees)
A2=(building blocks)
A3=(color television)
Run Code Online (Sandbox Code Playgroud)
和索引一样J=2,如何获取数组内容A2?
我已使用ContextLoaderListener和上下文init-parameter 配置了根应用程序上下文contextConfigLocation.
然后由JSF(*.jsf)变量解析器访问根上下文.它工作正常.
现在的问题是,通过的请求(*.do)DispatcherServlet将获得另一个应用程序上下文,然后单例bean被实例化两次.
我不需要另一个应用程序上下文DispatcherServlet,我如何指定它来重用现有的根应用程序上下文ContextLoaderListener?
注意
在阅读了答案中的参考页面后,我知道根上下文和调度程序上下文之间存在上下文分离,但没有一个引用告诉我去哪里.所以这是我的解决方案,可能对面临类似问题的其他人有帮助:
在调度程序servlet的上下文配置XML中:dispatcher-servlet.xml,我<context:component-scan/>已经定义了重复,这已经在根上下文中定义.所以删除它.该dispatcher-servlet.xml只需要定义仅用于Spring MVC的那些豆子.
所有控制器都已在根上下文中进行扫描和实例化,但是,默认情况下,Spring MVC不会在根上下文中注册控制器以进行请求映射.你可以:
2.1.在根上下文中,@Controller从dispatcher-servlet.xml中排除<component-scan>,@Controller仅扫描.
2.2.或者,将属性设置DefaultAnnotationHandlerMapping.detectHandlersInAncestorContexts为true:
(dispatcher-servlet.xml:)
<bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="detectHandlersInAncestorContexts" value="true" />
</bean>
Run Code Online (Sandbox Code Playgroud)我有一个带有几个jar模块的maven2项目,构建项目将获得目录模块/ XYZ/target/XYZ-xxxjar中每个模块的.jar存档
现在,如果我的项目P是版本Pp.qr,并且我想生成包含所有子模块的单个jar Pp.qr-all.jar,我该怎么办?
在Unicode的不同编码中,例如UTF-16le或UTF-8,字符可能占用2或3个字节.许多Unicode应用程序不像处理所有拉丁字母那样处理Unicode字符的显示宽度.例如,在80列文本中,一行应包含40个中文字符或80个拉丁字母,但大多数应用程序(如Eclipse,Notepad ++和所有知名文本编辑器,我敢于有任何好的例外)只计算每个汉字作为拉丁字母的1宽度.这肯定会使结果格式变得丑陋且不对齐.
例如,制表符宽度为8将得到以下难看的结果(将所有Unicode计为1个显示宽度):
apple 10
banana 7
?? 6
??? 31
pear 16
Run Code Online (Sandbox Code Playgroud)
但是,预期的格式是(将每个汉字计为2个宽度):
apple 10
banana 7
?? 6
??? 31
pear 16
Run Code Online (Sandbox Code Playgroud)
对字符显示宽度的不正确计算使得这些编辑器在进行制表对齐,换行和段重组时完全没用.
虽然,字符的宽度可能会因不同的字体而异,但在固定大小的终端字体的所有情况下,汉字始终是双倍宽度.也就是说,尽管有字体,但每个汉字最好以2宽度显示.
解决方法之一是,我可以通过将编码转换为GB2312来获得正确的宽度,在GB2312编码中每个汉字占用2个字节.但是,GB2312字符集(或GBK字符集)中不存在某些Unicode字符.而且,一般来说,从编码大小(以字节为单位)计算显示宽度并不是一个好主意.
简单地计算(\u0080... \uFFFF)范围内Unicode中的所有字符,因为2宽度也不正确,因为在该范围内还散布着许多1宽度字符.
计算阿拉伯字母和韩文字母的显示宽度时也很困难,因为它们通过任意数量的Unicode代码点构造一个字/字符.
因此,Unicode代码点的显示宽度可能不是整数,我认为没关系,它们可以在实践中基于整数,至少比没有好.
那么,在Unicode标准中是否有与char的首选显示宽度相关的属性?或者任何Java库函数来计算显示宽度?