小编Kev*_*ong的帖子

643
推荐指数
15
解决办法
58万
查看次数

如何为新服务选择默认的TCP/IP端口?

在开发将在TCP/IP端口上侦听的应用程序时,应如何选择默认端口?假设此应用程序将安装在许多计算机上,并且需要避免端口冲突.

networking tcp

104
推荐指数
4
解决办法
5万
查看次数

如何检测远程侧插座关闭?

如何检测是否Socket#close()已在远程端的套接字上调用?

java sockets networking tcp

82
推荐指数
3
解决办法
14万
查看次数

EasyMock:如何在没有警告的情况下创建泛化类的模拟?

代码

private SomeClass<Integer> someClass;
someClass = EasyMock.createMock(SomeClass.class);
Run Code Online (Sandbox Code Playgroud)

给我一个警告"类型安全:SomeClass类型的表达式需要未经检查的转换以符合SomeClass <Integer>".

java generics easymock mocking

43
推荐指数
3
解决办法
3万
查看次数

你如何使用敏捷方法的FogBugz?

FogBugz中的"基于证据的调度"很有意思,但我如何使用敏捷方法?

agile fogbugz schedule

19
推荐指数
1
解决办法
6506
查看次数

如何从javadoc Ant任务的结果中排除特定的方法/构造函数?

我正在使用javadocAnt任务生成的javadoc 来记录Web服务,我想从输出中排除一些构造函数.我怎么做?

java ant javadoc

16
推荐指数
3
解决办法
2万
查看次数

用于为每个循环包装可迭代选择的Eclipse模板

我想选择一个Iterable,按Alt + Shift + Z来获取"Surround With"上下文菜单,并显示一个foreachwrap模板,它将使用适当的格式将选择包装在每个循环中.

例如,我想选择

someObject.getSomeList()
Run Code Online (Sandbox Code Playgroud)

并生成这个

for (SomeListType someListType : someObject.getSomeList()) {

}
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的东西,但它似乎不起作用:

for( ${t:elemType(ls)} ${:name(t)} : ${ls:line_selection} )
{
    ${cursor}
}
Run Code Online (Sandbox Code Playgroud)

java eclipse

13
推荐指数
1
解决办法
3052
查看次数

以编程方式获取项目的Maven版本

如何以编程方式获取项目的Maven版本?

换一种说法:

static public String getVersion()
{
    ...what goes here?...
}
Run Code Online (Sandbox Code Playgroud)

例如,如果我的项目将生成jar CalculatorApp-1.2.3.jar,我想getVersion()返回1.2.3.

java maven

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

Java:通过Object(In | Out)putStreams阻塞SocketChannel上是否可以进行并发读写?

我创建了一个ObjectInputSteamObjectOutputStream上形成阻挡SocketChannel,我试图读取并同时写.我的代码是这样的:

socketChannel = SocketChannel.open(destNode);
objectOutputStream = new ObjectOutputStream(Channels.newOutputStream(socketChannel));
objectInputStream = new ObjectInputStream(Channels.newInputStream(socketChannel));

Thread replyThread = new Thread("SendRunnable-ReplyThread") {
    @Override
    public void run() {
        try {
            byte reply = objectInputStream.readByte();//(A)
            //..process reply
        } catch (Throwable e) {
            logger.warn("Problem reading receive reply.", e);
        }
    }
};
replyThread.start();

objectOutputStream.writeObject(someObject);//(B)
//..more writing
Run Code Online (Sandbox Code Playgroud)

问题是在行(B)块处写入,直到第(A)行的读取完成(返回的对象上的块SelectableChannel#blockingLock()).但app逻辑规定在完成所有写操作之前读取不会完成,因此我们有一个有效的死锁.

SocketChannel javadocs说支持并发读写.

当我尝试常规的Socket解决方案时,我没有遇到过这样的问题:

Socket socket = new Socket();
socket.connect(destNode);
final OutputStream outputStream = socket.getOutputStream();
objectOutputStream = new ObjectOutputStream(outputStream);
objectInputStream = new ObjectInputStream(socket.getInputStream());
Run Code Online (Sandbox Code Playgroud)

但是,那时我无法利用性能优势 …

java sockets nio

9
推荐指数
2
解决办法
4994
查看次数

用于匹配IPv4和IPv6字符串的Java正则表达式是什么?

寻找一个字符串传递给String#matches(String),它将匹配IPv4,另一个匹配IPv6.

java regex

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

番石榴不可变集合的序列化是否稳定?

我被警告不要在序列化通信中使用的对象中使用Guava不可变集合,因为如果更新了一端的Guava版本,则可能存在序列化版本不兼容问题.这是一个有效的问题吗?

java serialization guava

7
推荐指数
2
解决办法
1493
查看次数

罐子安全

我有一个独立的Java应用程序,它有一些我想要保护的许可代码,即阻止用户更改我的软件以规避许可.做这个的最好方式是什么?

我看过混淆,但这需要各种各样的问题:反射,序列化,混乱的堆栈跟踪等.也许jar签名可能是一个解决方案?但是如何在运行时验证jar?如何确保用户不更改jar验证码?

java security

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