OXGI在虚拟机中出错

问题描述

我按照网上写了列出电脑可用端口的程序,在Java上运行成功,用OSGI在java上也没有问题,但是当我将这个程序放入虚拟机中的OSGI上出现问题,我的虚拟机是linux系统。原因猜想是因为串口包RXTXcomm.jar是第三方包,虚拟机上不能读取路径,我已经将RXTXcomm.jar和libSerialPort.so放入虚拟机中java/lib/ext和java/bin下,但是还是报错,请问应该如何解决,报的错为:org.osgi.framework.BundleException:Theactivatorkommunication.ActivatorforbundleKommunicationisinvalidatorg.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:156)atorg.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:751)atorg.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)atorg.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284)atorg.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:276)atorg.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._start(FrameworkCommandProvider.java:252)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:324)atorg.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute(FrameworkCommandInterpreter.java:155)atorg.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand(FrameworkConsole.java:156)atorg.eclipse.osgi.framework.internal.core.FrameworkConsole.runConsole(FrameworkConsole.java:141)atorg.eclipse.osgi.framework.internal.core.FrameworkConsole.run(FrameworkConsole.java:105)atjava.lang.Thread.run(Thread.java:534)Causedby:java.lang.ClassNotFoundException:kommunication.Activatoratorg.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)atorg.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)atorg.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)atorg.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)atjava.lang.ClassLoader.loadClass(ClassLoader.java:235)atorg.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:338)atorg.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:232)atorg.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:149)...14moreNestedException:java.lang.ClassNotFoundException:kommunication.Activatoratorg.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)atorg.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)atorg.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)atorg.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)atjava.lang.ClassLoader.loadClass(ClassLoader.java:235)atorg.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:338)atorg.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:232)atorg.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:149)atorg.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:751)atorg.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)atorg.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284)atorg.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:276)atorg.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._start(FrameworkCommandProvider.java:252)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:324)atorg.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute(FrameworkCommandInterpreter.java:155)atorg.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand(FrameworkConsole.java:156)atorg.eclipse.osgi.framework.internal.core.FrameworkConsole.runConsole(FrameworkConsole.java:141)atorg.eclipse.osgi.framework.internal.core.FrameworkConsole.run(FrameworkConsole.java:105)atjava.lang.Thread.run(Thread.java:534)NestedException:java.lang.ClassNotFoundException:kommunication.Activatoratorg.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)atorg.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)atorg.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)atorg.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)atjava.lang.ClassLoader.loadClass(ClassLoader.java:235)atorg.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:338)atorg.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:232)atorg.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:149)atorg.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:751)atorg.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)atorg.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284)atorg.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:276)atorg.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._start(FrameworkCommandProvider.java:252)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:324)atorg.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute(FrameworkCommandInterpreter.java:155)atorg.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand(FrameworkConsole.java:156)atorg.eclipse.osgi.framework.internal.core.FrameworkConsole.runConsole(FrameworkConsole.java:141)atorg.eclipse.osgi.framework.internal.core.FrameworkConsole.run(FrameworkConsole.java:105)atjava.lang.Thread.run(Thread.java:534)希望大家给予一些提点,谢谢

解决方案

解决方案二:
将RXTXcomm.jar和libSerialPort.so放入环境变量中。实在不行将jar解压缩成class跟你自己应用程序的class放在一起
解决方案三:
谢谢你的解答。但是我按照你的方法把jar解压成class,并放在应用程序下,运行还是报同样的错。

时间: 2024-09-03 10:38:45

OXGI在虚拟机中出错的相关文章

vmware虚拟机中linux与windows主机共享目录的文件不同步

问题描述 vmware虚拟机中linux与windows主机共享目录的文件不同步 rt,我虚拟机中装了一个 ubuntu12.04,见了共享目录,然后也看到共享的文件了,但是,我再windows下改了文件内容以后,去虚拟机打开,发现内容还是原来的,或者就直接出错,最后一部分丢了,哪位大神给讲一下这是什么问题,有什么好的解决办法可以让文件及时同步没,或者有没别的虚拟机可以搞定这个,谢谢谢谢谢谢谢谢谢...... 解决方案 在虚拟机上安装sambe服务器,"sudo apt-get install

《深入学习VMware vSphere 6》——2.3 在VMware Workstation虚拟机中安装ESXi 6

2.3 在VMware Workstation虚拟机中安装ESXi 6 "实验是最好的老师",要掌握VMware ESXi的内容,从头安装.配置VMware ESXi,并在ESXi中创建虚拟机.配置虚拟机.管理VMware ESXi网络.如果要准备VMware ESXi环境,有以下3种方法. (1)在服务器上安装.这是最好的方法,你可以在最新两年购买的IBM.HB.Dell这些服务器上安装测试VMware ESXi,在安装的时候,服务器原来的数据会丢失,请备份这些数据. (2)在PC上

android4 3-Android4.3源码编译过程中出错

问题描述 Android4.3源码编译过程中出错 虚拟机Ubuntu12.04 64bit 编译Android4.3过程中出现以下问题: make: *** 没有规则可以创建"out/host/linux-x86/obj/SHARED_LIBRARIES/libdvm_intermediates/mterp/out/InterpAsm-x86.o"需要的目标"dalvik/vm/mterp/out/InterpAsm-x86.S". 停止. 源码在ubuntu12.

如何导出无法正常启动的VMware虚拟机中的文件

为了使用网银,在MacBook中用VMware虚拟机跑Windows 8.今天在使用Windows 8时,Windows Update自动安装了更新并自动重启,结果怎么也启动不起来了.不是停在"Please Wait",就是停在"Preparing To Configure Windows. Please Do Not Turn Off Your Computer",怎么整也没用,只能将这台虚拟机报废,但需要将虚拟机中的一些文件导出来了. 怎么办呢?VMware提供

虚拟机中的活动目录--可能被忽视很久的问题和答案

写在题外 很多人在今天把虚拟化及云计算的概念混淆掉了,但其实不容忽视的是虚拟机已经渗透到了大大小小的数据中心中,成为各种业务的"基石",可能小到一个测试系统,大到一个完整的Hadoop集群负载.因此不管怎样理解,个人认为对虚拟化做深入的实践在今天以至于可期待的将来都是非常有必要的. 今天想较为深入的讨论一下虚拟机中的活动目录需要注意的问题,以及如何通过Windows Server 2012中提供的守护者服务解决的. 下一篇博客将继续完成对虚拟机环境下的域控制器克隆和快速复制的方法. 实

如何在Vmware虚拟机中安装XP系统

  如何在Vmware虚拟机中安装XP系统 1.新建一个虚拟机,文件-新建虚拟机; 2.我们选择标准向导新建虚拟机,下一步; 3.有三个选项,光盘安装,镜像安装,稍后安装,我们选稍后安装; 4.选择想安装的操作系统名称,我们选windows; 5.选择windows版本,windows xp; 6.填写虚拟机名称,默认为你选择的windows版本名,可以修改,选择虚拟机文件存放地址;

Win8.1安装iTunes软件提示“安装过程中出错,您的系统未被修改”解决方法

Win8.1安装iTunes软件提示"安装过程中出错,您的系统未被修改"解决方法   解决方法:出现这个错误是由于在win8.1中有一个"Devic Intall Service"服务没有启动引起的,只要我们正常启动他就可以了. 操作方法: 1.按下WIN+R键,然后输入 services.msc 回车; 2.在服务列表中找到"Devic Intall Service"服务;xitongcheng.com 3.双击该服务,在配置中点击"

VMware虚拟机中激活Windows Server 2008的方法

  1)在VMware虚拟机安装Windows Server 2008 (cn_windows_server_standard_enterprise_and_datacenter_with_sp2_x86_dvd_x15-41045.iso) (注:32位VMware不能安装64位版的Win2008,64位VMware可安装32位和64位版的Win2008) 2)解压压缩包,将其中的DELL.ROM文件拷贝到VMware虚拟机win2008安装路径中,同vmx文件路径 3)修改Windows S

详解虚拟机中的NAT网络连接方式

  我就个人对虚拟机的理解,把虚拟机上网最方便的也是最难理解的NAT方式和大家一起聊聊,因为是大话NAT,所以说的会罗嗦点,不过主要是照顾新人.:) 老鸟就赶快飞吧 呵呵 先说一点别的,做为引子 假设现在R老师带3个班的学生,分别为a班. b班. c班 .现在就出现了两个交流方式: 第1种交流方式: 本班内交流,比如说a班的一个同学想和另一个同学交流,就可以直接在班里喊那个同学的名字.这个就向计算机内的同一个网段的计算机的交流方式-广播. 第2种交流方式: 班与班之间的学生交流,这个时候在a班里