我想找到一个工具来创建/维护我的自定义eclipse发行版(从下一个3.6开始).通过研究以前的问题,主要竞争者似乎:
有没有人在其中几个经验,可以评论优势等?我的愿望是:
我想将我的jaxws升级到2.2(jdk1.6与jaxws 2.1捆绑在一起).我的jdk是(我没有安装公共jre):
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)
在jaxws自己的文档中,他们解释了如何做到这一点:
解决此问题的一种方法是将jaxws-api.jar和jaxb-api.jar复制到JRE背书目录中,这是 $JAVA_HOME/lib/endorsed (or $JDK_HOME/jre/lib/endorsed)
但我不确定这对我的安装有什么影响.对于初学者我只定义了%JAVA_HOME%.文件夹$JAVA_HOME/lib/endorsed是不存在的,所以我创建并复制了两个罐子.但是,如果我这样做(wsgen是来自jaxws的工具)
wsgen -version
Run Code Online (Sandbox Code Playgroud)
我还是得到:
JAX-WS RI 2.1.6 in JDK 6
Run Code Online (Sandbox Code Playgroud)
我也试过创建文件夹JAVA_HOME\jre\lib\endorsed(请注意,在文档中他们说JDK_HOME,但因为我只有JAVA_HOME,所以我使用了这个路径).仍然是相同的wsgen输出.
我的问题是:
我发现这篇帖子对我所看到的内容有一些暗示
我还没有找到一个正则表达式来做到这一点。我需要验证电子邮件中的“消息 ID:”值。它类似于电子邮件地址验证正则表达式,但更简单,没有电子邮件地址允许的大多数边缘情况,来自rfc2822
msg-id = [CFWS] "<" id-left "@" id-right ">" [CFWS]
id-left = dot-atom-text / no-fold-quote / obs-id-left
id-right = dot-atom-text / no-fold-literal / obs-id-right
no-fold-quote = DQUOTE *(qtext / quoted-pair) DQUOTE
no-fold-literal = "[" *(dtext / quoted-pair) "]"
Run Code Online (Sandbox Code Playgroud)
假设外部 <> 是可选的。点原子文本和缺失的定义可以在rfc2822 中找到
我不精通正则表达式,如果存在,我更喜欢使用已经测试过的正则表达式。
我没有选择"恢复默认布局",而是错误地选择"将当前存储为默认布局",因此我当前的布局(我不想使用)被设置为默认布局.
现在我不能再去原始布局了.有没有办法将布局重置为其出货值?
我在Windows7上的intellij 12.1.1上.
也就是说,由于以下原因,在C部分中要求5 mb的malloc()是否会失败:
Just curious about it...
Cedric Beust created TestNG and I understand from an interview I read was part of the Android team. Why did they chose to use JUnit as the testing infrastructure for Android Eclipse Tools?
Isn't TestNG supposed to a better than JUnit?
我曾经多次需要一些类来表示和操作条件(通常在UI中,因此用户通过组合不同的条件类型来构建查询,然后代码可以根据要查询的底层系统对其进行转换,例如lucene和a D b).我搜遍了一组可重复使用的类,我确信这必须在许多现有的地方使用(所有表达语言都是初学者),但找不到任何容易使用的东西.我自己最终编写了两次编码,但是对于不重复使用我确定存在的东西感到很难过.
典型的需求是: - 几个运算符:和/或 - 可变数量的操作数 - 组合条件来构建表达式 - 表达式的序列化 - 从/到字符串的表达式的解析/格式化
有人发现了类似的东西吗?
我不时要在项目的枚举类型中添加一个新值.
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY,
FILENOTFOUND //this one is new one
}
Run Code Online (Sandbox Code Playgroud)
我想要的是每个我没有处理新值的开关都有编译时错误,如下所示:
switch (color) {
case MONDAY:
case TUESDAY:
case WEDNESDAY:
case THURSDAY:
System.out.println("Mondays are bad.");
break;
case FRIDAY: System.out.println("Fridays are better.");
break;
case SATURDAY:
case SUNDAY: System.out.println("Weekends are best.");
break;
}
Run Code Online (Sandbox Code Playgroud)
有一个默认:抛出一些异常是不够好的,我希望它是编译时间.
我不认为这是可能的,但也许有人有一个巧妙的把戏......
我认为Findbugs有一个规则可以找到那些,但我只看到了这个: Eq:为枚举定义的协变equals()方法(EQ_DONT_DEFINE_EQUALS_FOR_ENUM)
编辑:我选择了马克的回复,我确实使用了Eclipse,听起来就像我需要的那样!我根本不是findbugs的专家,所以我可能错过了这样的功能,尽管我不这么认为.
我有一个在java(1.6)中运行的关键进程,带有一个注册的关闭钩子.在某些情况下我得到一个OOM问题(下面有关于该问题的更多细节),该过程突然停止,我没有得到任何我的日志,我的捕获(Throable x)没有捕获异常.
但是关闭钩子有效.因此,如果有一种方法可以知道由于某些令人讨厌的OOM而导致进程停止,我可以在退出之前记录必要的信息.
有没有办法做到这一点?
关于OOM:不确定什么是例外,因为我说它不会被抓住.我知道这是一个OOM因为我开始这个过程
-XX:+HeapDumpOnOutOfMemoryError
Run Code Online (Sandbox Code Playgroud)
我得到一个堆转储文件.在其他情况下,会捕获异常,并且它是ava.lang.OutOfMemoryError:超出了GC开销限制.但不确定这种情况总是如此.
编辑:
如果不清楚:我不是试图阻止OOM,因为它可能在某些情况下出于正当理由,我只是想确保在应用程序日志文件中清楚
我的问题是:是否有可能在关机钩子中发现由于OOM导致进程正在关闭?
我需要以编程方式和相同的过程进行此操作.
目前最好的方法是查看是否存在process_.hprof(我知道pid)的堆转储文件java_pid_pid,其中包含最近的日期并推断出有一个OOM.我想我可以尝试Runtime.getRuntime().freeMemory()并报告问题,如果可用的内存非常低,但不确定这是多么可靠,可能当进程关闭时它已经释放了很多内存,方法以上是我认为最好的.
我正在寻找一些实用程序类/代码,它将采用java bean并将其所有值初始化为随机值.它可以通过反射来完成,因为一些库已经创建了toString()或equals()方法.在开发UI以获得一些数据时很有用.
其他可能的好处:
有人知道这样的事吗?谢谢
编辑:解决... Apocalisp的样本正在工作,最终正是我所寻找的.它有一些缺点恕我直言:
谢谢!
我使用以下参数(以及其他参数)启动我的java代码(Vista中的1.6.0_16)-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../logs.我运行代码,我可以在日志中看到有两个OOM.
我知道的第一个因为我可以在stdout中看到正在创建hprof文件:
java.lang.OutOfMemoryError: Java heap space
Dumping heap to ../logs\java_pid4604.hprof ...
Heap dump file created [37351818 bytes in 1.635 secs]
Run Code Online (Sandbox Code Playgroud)
然后,在代码结束时我得到另一个OOM,我捕获了这个,但是我没有创建第二个hprof文件.谁知道为什么?是因为我抓住了OOM例外吗?
我尝试在mysql中的几个dbs中运行相同的查询:
def m='xxx'
def dbs = ['DB05DEC05','DB06DEC06','DB07DEC07','DB08DEC08','DB09DEC09','DB10DEC10']
def sql =Sql.newInstance("jdbc:mysql://localhost:3306", "root","", "org.gjt.mm.mysql.Driver")
dbs.each{
db-> sql.eachRow("select * from ${db}.mail where mid=$m", { println "\t$db ${it.mid}"} );
}
Run Code Online (Sandbox Code Playgroud)
这给出了一个错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''DBJAN05DEC05'.mail where mid='xxx'
Run Code Online (Sandbox Code Playgroud)
Groovy显然用引号做了一些自定义的东西,并要求你不要在sql中使用引号(注意mid = $ m,如果你使用mid ='$ m'它警告你不要使用引号).问题是,在第一个$我根本不知道需要报价,报价是问题...
在vista上的groovy 1.7.谢谢
编辑:我发现了一个类似的问题,但它没有一个公认的答案...... Groovy GString问题