Eclipse 在同一项目中运行SimplePenni和leJOS

Eclipse 在同一项目中运行SimplePenni和leJOS,eclipse,build,lejos-nxj,simple-openni,Eclipse,Build,Lejos Nxj,Simple Openni,我们有一个项目,我们想用微软的Kinect传感器控制一个乐高Mindstorms机器人。我们决定使用SimplePenni和Processing读取传感器,使用leJOS控制机器人,原因很简单:因为两者都是Java语言,我们可以指定一种RoboHandler,并从传感器读取类调用其方法 为了实现这一点,我们下载了eclipse的leJOS插件,创建了一个新的leJOS NXT项目,并将processing和SimplePenni库放在构建路径中。注意,要使用SimplePenni,需要一个没有J

我们有一个项目,我们想用微软的Kinect传感器控制一个乐高Mindstorms机器人。我们决定使用SimplePenni和Processing读取传感器,使用leJOS控制机器人,原因很简单:因为两者都是Java语言,我们可以指定一种
RoboHandler
,并从传感器读取类调用其方法

为了实现这一点,我们下载了eclipse的leJOS插件,创建了一个新的leJOS NXT项目,并将processing和SimplePenni库放在构建路径中。注意,要使用SimplePenni,需要一个没有Java的旧处理版本

现在的问题是,在安装leJOS时,它严格要求32位javajdk,所以我必须下载它并在安装时指向它

此时,项目中存在以下生成路径:

  • LeJOS NXT运行时(其中包括java.awt类)
  • core.jar(用于在eclipse中运行处理)
  • simplepenni.jar
拥有所有这些,并建立第一个处理草图,如

import processing.core.*;

public class Test extends PApplet{
    (....)
}
导致以下错误代码:

Multiple markers at this line
    - The type java.awt.event.MouseMotionListener cannot be resolved. It is indirectly referenced from 
     required .class files
    - The type java.applet.Applet cannot be resolved. It is indirectly referenced from required .class files
    - The type java.awt.event.MouseListener cannot be resolved. It is indirectly referenced from required .class files
    - The hierarchy of the type FirstTry is inconsistent
    - The type java.awt.event.FocusListener cannot be resolved. It is indirectly referenced from required .class files
    - The type java.awt.event.KeyListener cannot be resolved. It is indirectly referenced from required .class files
当我下载没有Java版本的处理时,我无法从32位或64位版本中进行选择。SimplePenni安装为64位版本

当添加64位JDK(eclipse工作区默认值)作为工作区时,错误也会消失,但当尝试运行草图时,控制台中会显示以下错误:

Invalid layout of java.lang.Thread at name
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (javaClasses.cpp:128), pid=9176, tid=8740
#  fatal error: Invalid layout of preloaded class
#
# JRE version: 7.0_04-b22
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0-b21 mixed mode windows-amd64 compressed oops)
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Users\Valentino\Desktop\workspaces\workspace_processing\RoboZeugs\bin\hs_err_pid9176.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#

因此,在我看来,JDK版本(32位和64位)存在一个问题,但必须有一种方法来处理这个问题。有没有人在这个特定的主题上有过经验,甚至可能是Kinect->Mindstorms?有人能告诉我这个错误的确切含义吗?

你把设计用于在NXT砖块上运行JVM的类(即classes.jar中的所有内容)与设计用于在PC上运行成熟JVM的类混合在一起。 不要那样做。如果您想远程控制NXT,请使用pccomms.jar和lib/pc中的其他所有内容。但在pc上启动Java程序时,切勿将classes.jar或lib/NXT中的任何内容添加到类路径中

关于java.lang.Thread的错误消息可能是因为classes.jar中的java.lang.Thread与PC上JVM附带的java.lang.Thread不兼容