小编Per*_*ium的帖子

选择一个工具来创建/维护自定义eclipse发布

我想找到一个工具来创建/维护我的自定义eclipse发行版(从下一个3.6开始).通过研究以前的问题,主要竞争者似乎:

有没有人在其中几个经验,可以评论优势等?我的愿望是:

  • 'distrib'我的意思是:插件,设置和偏好......
  • 能够在几个工作站中使用相同的eclipse设置
  • 可以与团队的其他成员分享
  • 跨越3.5和下一个3.6:我不知道是否可能.无论如何,我不会反对每个新的eclipse主要版本定制一次发布

eclipse eclipse-plugin pulse yoxos

10
推荐指数
1
解决办法
1210
查看次数

在jdk1.6中使用Endorsed目录的确切方法是什么

我想将我的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输出.

我的问题是:

  1. doc页面中JAVA_HOME和JDK_HOME有什么区别?什么重要或只有两种方式来引用JAVA_HOME?
  2. 'wsgen -version'是检查使用的jaxws版本的有效方法,还是总是在原始jdk中调用exe,但这并不意味着将使用支持的jar?
  3. 有人知道在jdk.16中安装jaxws2.2的非常详细的步骤吗?

我发现这篇帖子对我所看到的内容有一些暗示

java jax-ws endorsed

8
推荐指数
2
解决办法
4万
查看次数

根据 RFC2822 验证消息 ID 的正则表达式

我还没有找到一个正则表达式来做到这一点。我需要验证电子邮件中的“消息 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 中找到

我不精通正则表达式,如果存在,我更喜欢使用已经测试过的正则表达式。

regex email rfc2822

8
推荐指数
2
解决办法
6135
查看次数

如何恢复原始窗口intellij布局

我没有选择"恢复默认布局",而是错误地选择"将当前存储为默认布局",因此我当前的布局(我不想使用)被设置为默认布局.

现在我不能再去原始布局了.有没有办法将布局重置为其出货值?

我在Windows7上的intellij 12.1.1上.

layout intellij-idea

8
推荐指数
1
解决办法
1万
查看次数

由jvm限制的C代码在JNA(或JNI)中分配的内存(param -Xmx或体系结构32/64)

也就是说,由于以下原因,在C部分中要求5 mb的malloc()是否会失败:

  • jvm使用-Xmx32m运行,jvm堆已经是30 MB
  • 与jvm在64位窗口中是32位有关

java memory jvm jna

7
推荐指数
1
解决办法
1122
查看次数

Why does Android use JUnit over TestNG even if Cedric Beust created TestNg and was part of Android team?

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?

junit testng android

7
推荐指数
1
解决办法
1149
查看次数

可重用的条件/表达式类

我曾经多次需要一些类来表示和操作条件(通常在UI中,因此用户通过组合不同的条件类型来构建查询,然后代码可以根据要查询的底层系统对其进行转换,例如lucene和a D b).我搜遍了一组可重复使用的类,我确信这必须在许多现有的地方使用(所有表达语言都是初学者),但找不到任何容易使用的东西.我自己最终编写了两次编码,但是对于不重复使用我确定存在的东西感到很难过.

典型的需求是: - 几个运算符:和/或 - 可变数量的操作数 - 组合条件来构建表达式 - 表达式的序列化 - 从/到字符串的表达式的解析/格式化

有人发现了类似的东西吗?

java expression functor

6
推荐指数
1
解决办法
270
查看次数

如何检测新值已添加到枚举中,并且不在交换机中处理

我不时要在项目的枚举类型中添加一个新值.

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 enums findbugs compilation

6
推荐指数
1
解决办法
1668
查看次数

jvm:是否有可能在关闭钩子中发现由于OOM导致进程正在关闭?

我有一个在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 memory jvm out-of-memory shutdown-hook

5
推荐指数
1
解决办法
1111
查看次数

将javabean初始化为随机值的方法

我正在寻找一些实用程序类/代码,它将采用java bean并将其所有值初始化为随机值.它可以通过反射来完成,因为一些库已经创建了toString()或equals()方法.在开发UI以获得一些数据时很有用.

其他可能的好处:

  1. 递归初始化非原始或简单(字符串,日期)成员
  2. 初始化一组bean
  3. 也许给出一些方法来限制生成的值,例如我们可以为字符串regexps或通配符提供范围的数字...

有人知道这样的事吗?谢谢

编辑:解决... Apocalisp的样本正在工作,最终正是我所寻找的.它有一些缺点恕我直言:

  • 该库的范围比使用范围大得多,但对我来说这不是问题
  • 除非你花一些时间研究整个事物,否则理解如何为你的对象建立任意对象是相当复杂的.这是一个缺点.
  • 而且我猜这可能更有吸引力,但这也很好.

谢谢!

java random javabeans

4
推荐指数
2
解决办法
3942
查看次数

-XX:+ HeapDumpOnOutOfMemoryError未在OOM中创建hprof文件

我使用以下参数(以及其他参数)启动我的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例外吗?

java hprof

4
推荐指数
2
解决办法
1万
查看次数

在sql查询中动态设置db

我尝试在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问题

sql groovy

3
推荐指数
1
解决办法
1491
查看次数