找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 9728|回复: 1

LeJOS NXJ入门指南 - 使用NetBeans

[复制链接]
发表于 2009-11-2 22:54:13 | 显示全部楼层 |阅读模式

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://programus.blogbus.com/logs/49999044.html


英文原文: http://lejos.sourceforge.net/nxt/nxj/tutorial/Preliminaries/UsingNetbeans.htm
安装Netbeans
你可以从Netbeans downloads下载到Netbeans。如果你只想用Netbeans进行LeJOS NXJ编程,你只需要标准Java开发能力(standard Javadevelopment capabilities)——换句话说,你不需要能够支持JavaEE开发或者类似C++等其他语言开发的版本。例如“Java SE”的安装包就足够了。
如果你对NetBeans不是很熟,可以考虑学习一下NetBeans的快速入门:http://www.netbeans.org/kb/docs/java/quickstart.html
如果想知道如何在NetBeans中进行一般的Java应用程序的开发,请参看这里:http://www.netbeans.org/kb/docs/java/javase-intro.html#setup
如果你想了解一些NetBeans编辑器的小窍门,请阅读这个:http://www.netbeans.org/kb/docs/java/editor-tips.html
接下来的两节是关于如何使用LeJOS NXJ例程的。如果你想跳过这些,直接学习如何开始你自己的项目,请阅读最后一部分——安装Netbeans插件。

使用示例工程
要在NetBeans中打开LeJOS NXJ例子工程,请选择菜单 File > Open Project然后在弹出的对话框中找到例子工程所在的位置。如果你是用Windows安装程序进行的安装,例子工程应该在你的home目录中的leJOSNXJProjects目录下。如果不使用安装程序,它应该在leos_nxj/projects目录下。
在例子工程中,我们为每一个示例都创建了一个源程序目录(sourcefolder)。打开BlueStats源程序目录,然后打开其中的“<defaultpackage>”,你会看到里面有一个BlueStats.java文件和一个build.xml文件。build.xml文件是用来让ant构建例子用的。ant是一种为Java准备的构建系统(译注:就是把源程序几经周折变成可以运行的文件的系统)。NetBeans内置了ant。
ant通过“target”来管理文件的构建。示例build.xml中默认的target是“uploadandrun”(译者:懂一点英语的人都知道这是上传并运行的意思)。这意味着,如果你用ant来运行build.xml文件,他将自动编译、连接Java源文件,生成一个二进制文件,然后将其上传到NXT中并运行之。
打开你的NXT,确保它通过USB连接到你的电脑或者可以通过蓝牙进行连接。然后右键单击build.xml文件,选择菜单 Run Target > uploadandrun :

你会在控制台窗口中看到如下内容的输出:
   
Buildfile: C:\Users\Lawrie\leJOSProjects\samples\BlueStats\build.xml
clean:
compile:
    [javac] Compiling 1 source file to C:\Users\Lawrie\leJOSProjects\samples\BlueStats
link:
     [java] Class 0: java.lang.Object
     [java] Class 1: java.lang.Thread
     [java] Class 2: java.lang.String
     [java] Class 3: java.lang.Throwable
     [java] Class 4: java.lang.Error
     [java] Class 5: java.lang.OutOfMemoryError
     [java] Class 6: java.lang.NoSuchMethodError
     [java] Class 7: java.lang.StackOverflowError
     [java] Class 8: java.lang.NullPointerException
     [java] Class 9: java.lang.ClassCastException
...
     [java] Class 38: lejos.nxt.Flash
     [java] Method 0: Class: java.lang.Object Signature: ()V PC 3222 Signature id 2
     [java] Method 1: Class: java.lang.Object Signature: notifyAll()V Native id 5
     [java] Method 2: Class: java.lang.Object Signature: wait()V Native id 6
     [java] Method 3: Class: java.lang.Object Signature: wait(J)V Native id 7
     [java] Method 4: Class: java.lang.Object Signature: toString()Ljava/lang/String; PC 3223 Signature id 95
...
     [java] Method 147: Class: lejos.nxt.Flash Signature: writePage([BI)V Native id 75
     [java] Method 148: Class: lejos.nxt.Flash Signature: ()V PC 9337 Signature id 3
     [java] Master record    : 16 bytes.
     [java] Class records    : 39 (390 bytes).
     [java] Field records    : 80 (80 bytes).
     [java] Static fields    : 53 (106 bytes).
     [java] Static state     : 53 (202 bytes).
     [java] Constant records : 26 (104 bytes).
     [java] Constant values  : 26 (252 bytes).
     [java] Method records   : 149 (1788 bytes).
     [java] Exception records: 67 (536 bytes).
     [java] Code             : 117 (6122 bytes).
     [java] Total            : 9597 bytes.
uploadandrun:
     [java] Found nxt name NOISY address 001653007848
     [java] leJOS NXJ> Upload successful in 1974 milliseconds
BUILD SUCCESSFUL
Total time: 4 seconds

LeJOS连接器产生的长长的输出列表可以告诉你所有被包含在你的程序中的类和方法。这些信息对调试程序将相当有用。
程序运行起来,你会在NXT的液晶显示器上看到蓝牙的统计信息。你可以随时按ESCAPE键(译注:NXT上的灰色按钮)停掉BlueStats程序。
你可以逐个试一下示例程序。其中一些示例需要与PC端程序通信——请参看下面的[使用PC示例工程]一节。另外有一些程序需要在NXT上连接指定的传感器或者需要具有某种特性的机器人结构——比如轮子驱动的车型机器人。请参看每一个示例程序中的Java文件最开始的注释来获取相关的示例运行前提信息。
有一点需要注意的是,在例子工程中,为了简化,程序都放在默认包下面。但这在Java编程中不是一个好习惯,当你建立自己工程的时候,我们还是强烈建议你为程序创建一个特定的包。
还有一点需要提醒大家的是,示例工程中包含了很多带有主方法的程序。这对于在一个工程里面包含很多程序来说确实很方便,但这并不是一个好的方案。当构建自己的工程时,还是建议大家为不同的LeJOS NXJ程序建立不同的工程。

使用PC示例工程
要在NetBeans中打开LeJOS NXJ例子工程,请选择菜单 File > Open Project 然后在弹出的对话框中找到例子工程所在的位置。
打开BTSend目录。BTSend与BTReceive示例程序协同工作。BTSend.java运行于PC端,而BTReceive.java运行于NXT端。
你会发现PC示例中没有build.xml文件,因为它们不需要。你可以通过右键点击BTSend.java并从菜单中选择[Run as Java application]来运行它,不过在运行它之前,我们必须先在NXT中运行起BTReceive。
进入samples工程,选择BTReceive的build.xml文件,并按照我们上一节提到的方法将程序编译、上传到NXT中,并运行。
现在回到pcsamples工程,运行BTSend.java。BTSend运行后,会连接BTReceive,并随后向其发送100个整数,同时将接收到的值显示出来。然后,断开连接,BTReceive会重新开始等待下一次连接。
你也可以用NXTReceive与BTSend协作。NXTReceive与BTReceive非常接近,但是它允许你选择协议和发送数据用的模式。
你可以用类似的方法逐个试一下其他PC示例程序。其中的一些是与NXT示例中的程序配对的。仍然是查看Java源文件开头的注释来了解相关信息。另外有一些程序在PC上远程运行了一个LeJOS NXJAPI的子集。AccelDemo、SensorTest以及TachoCount就属于此类程序。TachoCount中演示了在你拥有多于一个NXT的时候如何控制你所连接的NXT。

安装NetBeans插件
安装Netbeans插件非常简单。首先打开Netbeans,选择菜单 Tools > Plugins,点击Downloaded选项卡,然后点击[Add Plugins]。然后找到你安装LeJOSNXJ项目的位置,在里面找到NXJPlugin/build/nxjplugin.nbm文件,选择之,插件就装好了。

使用NetBeans插件创建你自己的工程
要创建在NXT上运行的LeJOSNXJ程序,使用NetBeans里面的标准Java工程是不行的。你需要一种特殊的NXJ工程,它可以自动调用LeJOS工具来连接和上传你的代码。创建NXJ工程最简单的方法就是使用NetBeans插件。如果你偏不要使用插件,而是要自己创建工程,自己创建ant的构建文件来完成这项工作,请打开org.lejos.example工程仔细学习一下。实际上,这个工程就是插件用做模板的工程。
我们不去理会那些偏要自己折腾的家伙,这里说一下如何使用插件。要使用插件创建NXJ工程,选择菜单 File > NewProject,然后选择Samples。从Projects选项卡中,选择“NXJSample”点击[Next]。一个新的项目窗口就被打开了。输入项目名称,例如“myproject”,点击[Finish]。
你现在会在你的Projects选项卡中看到“myproject”。在 Source Package > sample下面,你会看到HelloWorld.java文件,这个文件默认是工程的主类。
插件会自动为你的工程复制一个build.xml文件和一个build.properties文件。你可以选择并运行build.xml文件中的target,方法就跟上面讲示例工程时说过的一样。或者你也可以使用NetBeans的快捷键。(不过不要使用“NetBeanszip”这个target,除非你知道自己在做什么。因为这个操作会让你的工程成为插件的模板,但是要激活它,你还需要重新构建和重新安装NXJPlugin工程。)
你可以用 Refactor > Rename操作给HelloWorld类改名。同样地,你也可以用此方法给包重命名。改名之后,你可能想去更改build.xml文件中的projectname、description和main.class属性。但如果你只想使用“Run File”和“CompileFile”这两个target,实际上这并不是必需的。但是修改main.class可以让你可以通过右键单击build.xml来执行target。在0.85版的插件中有一个bug,你需要修改program属性,将它改成你的新的类名(不包括包名)才行。
右键单击你的工程,选择“Properties”,然后选择“Java Sources Classpath”。你会发现那里有一个指向classes.jar的相对路径。你可以删除它,并替换成外部Jar文件——你的LeJOS NXJ安装目录下的lib目录中的那个。
要测试你的工程,右键单击主类的Java文件,选择“Run File”。文件将会被编译、连接、被上传到你的NXT中并运行起来。
如果你想改变Run File所使用的target,请到文件视图中修改nbproject/ide-file-targets.xml文件。

(译者:因为我更偏爱使用Eclipse,所以NetBeans下编写LeJOS NXJ程序没有实际操作,可能有些部分翻译的有些不对头,还望各位积极指正。另外,整体看下来,还是Eclipse的插件用起来最方便,所以继续强烈推荐!)
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2010-6-3 21:41:34 | 显示全部楼层
初学初学,谢谢
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-5-1 13:09 , Processed in 0.095818 second(s), 18 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表