- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用图书馆 native-tray-adapter ,这需要图书馆 jni-utils-1.0以确保 Ubuntu 中的图标没有透明背景。
我的程序创建了一个带有关闭菜单项的菜单,用于关闭程序。当我在 Eclipse 中运行该程序时,它工作正常,我可以毫无问题地与图标进行交互。当我将文件导出到可运行的 jar 时,当我尝试关闭该程序时,Java 虚拟机崩溃,该程序能够通过右键单击显示菜单,但是单击菜单会导致崩溃。
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0xb6d3f746, pid=6193, tid=2121870192
这在 sun 和开放运行时环境中都会发生。我还尝试将虚拟机作为客户端和 cacao 运行,在客户端中问题是相同的,但是在 cacao 中虚拟机没有崩溃但它没有对与图标的任何交互做出正确 react 。
当我使用参数 -Xcheck:jni 运行虚拟机时,我收到了错误消息:
WARNING in native method: JNI call made with exception pending
FATAL ERROR in native method: Bad global or local ref passed to JNI
Aborted
我假设问题出在 jni-utils 库上,但是我不明白为什么 eclipse 能够毫无问题地运行该程序,然后它在环境之外崩溃。
我已经在eclipse>help>about>installation details>configuration中检查了虚拟机的目录,这与命令的目录相匹配
$ which java
一些额外的细节
os: ubuntu 11.10
eclipse version: 3.7.0
eclipse library: java6-openjdk
java version: "1.6.0_26"
如果需要更多信息,请随时询问。有错误日志,但我不知道这会有多大帮助以及我需要发布哪些部分。
任何帮助解释为什么会发生这种情况,一种使虚拟机与 eclipse 相同的方法,或使用标准 Java TrayIcon 删除 ubuntu 中显示的白色背景的另一种方法将不胜感激。
编辑
我发现问题出在我导出 jar 文件的方式上。当我在 eclipse jar 导出中选择时:
将所需的库提取到生成的 JAR 中
或
将所需的库复制到生成的 JAR 旁边的子文件夹中
我能够正确地与图标进行交互。我仍然不确定问题出在哪里,因为我认为链接的行为仍然与打包在 JAR 内部或外部的独立库相同。
这是eclipse打包的错误还是有其他问题?
干杯
最佳答案
引用自http://www.gnu.org/software/libc/manual/html_node/Program-Error-Signals.html -->:
当程序试图在为其分配的内存之外读取或写入,或写入只能读取的内存时,会产生此信号。 (实际上,只有当程序运行到足以被系统的内存保护机制检测到的程度时,信号才会出现。)该名称是“segmentation violation”的缩写。
获取 SIGSEGV 条件的常见方法包括取消引用 null 或未初始化的指针,或者当您使用指针遍历数组但未能检查数组末尾时。取消引用空指针是否生成 SIGSEGV 或 SIGBUS 在系统之间有所不同
关于java - JVM 在 eclipse 中运行,在 SIGSEGV 外部崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8874074/
这个问题是针对 Linux 提出的。使用 GCC 编译器。 如果 SIGSEGV(我的意思是通常会导致 SIGSEGV 的违规行为)发生在旨在捕获 SIGSEGV 的信号处理程序中,可以预期会有什么行
我正在构建一个 C++ 程序,我需要在其中处理 SIGSEGV 并且信号处理程序应该能够打印回溯。任何人都可以帮忙吗。 问候 最佳答案 获得 SIGSEV 回溯的最好方法是生成核心文件而不是打印回溯。
我有一个屏幕A,在执行了一些POST API任务后,我启用了一个按钮,然后单击按钮导航到屏幕B。当Reaction Native应用程序冻结并崩溃时,崩溃会随机发生。从其他屏幕导航到屏幕B也不是问题,
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我正在编写这个方法(C 语言),它应该为链表创建一个新节点。它在第一个 if (SIGSEGV 信号)之后的行崩溃 我正在调试该方法,因此后续行中可能会有更多错误,但目前我将感谢有关此特定行的任何观察
这是我的比较函数: int compareInts(const void *a, const void *b) { const int *pa = (const int*)a; con
我一直在研究一些有缺陷的代码,并想安装一个 SIGSEGV 处理程序来获取有关崩溃的更多信息。但是,我注意到我的处理程序没有被调用。 我一直在寻找原因,它似乎与损坏的堆栈指针值有关(它肯定没有被屏蔽)
我是编码新手。当我在 codecheff 中提交代码时,它给出“运行时错误(SIGSEGV)”。我不知道有什么问题请帮忙。提前致谢。 int call(int *x, int m) { int
CodeChef 问题: Shivam 是世界上最年轻的程序员,他只有 12 岁。 Shivam 正在学习编程,今天他正在编写他的第一个程序。 程序很简单,给定两个整数A和B,编写一个程序将这两个数字
我正在编写一个编程问题的解决方案。问题如下: Your program is to use the brute-force approach in order to find the Answer t
好吧,只是为了好玩,我正在研究埃拉托色尼筛。它最初运行良好,因此我寻求提高其运行时复杂性。现在,我不知道为什么,但我遇到了段错误。代码如下: #include #include int main(
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我正在创建一个简单的链表程序来插入和查看 LL 的元素。当我尝试插入第二个元素时,它给出 SIGSEV,但我不明白为什么?!! 请帮我指出问题: main.c: #include #includ
我试图提交此代码以解决 hackerearth 上的问题,但我得到了此 SIGSEGV 运行时错误。我读到了这个错误,但我无法让我的代码工作。有人说这是由于无效的内存引用、数组的动态初始化或数组索引超
我正在思考 leetcode 问题 167,但我的代码遇到了段错误 (SIGSEGV) 问题。下面是我的c代码,预期的答案是[1,3]。 #include #include /** * Return
我有一个在ARM平台上运行的多线程程序。在其中一个线程中,我将调用 system() 来运行某些 shell 命令。最近,我发现有时候,由system() fork 的子进程会以SIGSEGV终止。
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我很高兴知道为什么我遇到此错误 http://www.codechef.com/problems/AXR1P2在 codechef.com 中,我的代码是... #include #include i
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我正在使用 POSIX 套接字在 Android 上编写一些网络代码,但是当我调用 Sento 时,我收到了一个奇怪的 SIGSEGV(信号 11,代码 1)。我已经使用墓碑跟踪来确定它是哪一行,但坦
我是一名优秀的程序员,十分优秀!