我目前安装了Java ME SDK 3.0.5,并且正在运行Eclipse的MIDLET。
当我在模拟器设备下运行应用程序时,我在控制台中获得以下数据:
Syntax:
emulator [arguments]
In order to get commands supported by given device run:
emulator.exe -Xdevice:<device name> -Xquery
Generic list of arguments is:
-version Display version information about the emulator
-help Display list of valid arguments
-classpath, -cp The class path for the VM
-D<name>=<value> Set a system property
-Xdebug Use a remote debugger
-Xrunjdwp:[transport=<transport>,address=<address>,server=<y/n>,
suspend=<y/n>]
Debugging options
-Xdevice:<device> Select a device skin for the emulator
-Xdomain:<domain_name>
Set the MIDlet suite's security domain
-Xmain:<main class name>
Run the main method of a Java class, as in Java SE
-Xquery Print device information
一切似乎都没问题,但我无法进行任何形式的模拟。
这是我的MIDLET的代码,虽然我不认为这里存在问题。
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;
public class Hello extends MIDlet implements CommandListener {
private Command exitCommand;
private Display display;
private Form screen;
public Hello() {
display = Display.getDisplay(this);
exitCommand = new Command ("Exit", Command.EXIT, 2);
screen = new Form ("Hello World");
StringItem strItem = new StringItem ("","Hello World");
screen.append (strItem);
screen.addCommand (exitCommand);
screen.setCommandListener(this);
}
public void startApp() throws MIDletStateChangeException {
// set the current display to the screen
display.setCurrent(screen);
}
public void pauseApp() {
// TODO Auto-generated method stub
}
public void destroyApp(boolean unconditional) {
// TODO Auto-generated method stub
}
public void commandAction (Command c, Displayable s)
{
if (c == exitCommand)
{
destroyApp (false);
notifyDestroyed();
}
}
}
答案 0 :(得分:3)
输出非常简单,它告诉你模拟器的命令行语法不正确。
转到Java ME设备设置并编辑模拟器命令行/启动选项以适应。
切换IDE可能会为您提供短期解决方案,但最好还是找到问题的根源。此外,它还可以帮助您了解模拟器框架。
答案 1 :(得分:1)
我切换到Netbeans,它集成了对J2ME的支持(而不是必须为Eclipse安装第三方插件),现在它可以完美运行。
答案 2 :(得分:1)
在eclipse上运行基本的JavaMe应用程序时遇到了类似的问题,“Corrupt JAR,读取时出错”。在我为初学者http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.mtj.doc.user/html/gettingstarted/prepare_workbench.html关注这个系列之后,它对我有用(尽量不要错过这里提到的任何内容) 注意,当您启动应用程序时,请从“应用程序描述符”(从左侧菜单开始)使用“启动为模拟Java ME JAD”( - 位于页面右上角的“正在运行”部分)。
这是一个迟到的回复,但可能会在将来帮助某人。
答案 3 :(得分:0)
如果你喜欢冒险并希望在没有IDE的情况下开发/运行JavaME应用程序而不是我有一线希望,那就编写一个批处理脚本(或linux系统的shell脚本)来手动运行具有特定jad的模拟器
批处理脚本(run.bat)
"<javame-3.0-sdk-root-folder>\bin\emulator.exe"
-Xdescriptor:"<jad-filename-with-extension>" >> logs.txt
pause
exit
将上述脚本保存在与应用程序jad / jar相同的文件夹中。控制台打印将在log.txt
文件中提供。
答案 4 :(得分:0)
这里是如何从模拟器(Java ME SDK 3.0.5)运行jar的
(如何在Java ME SDK 3.0.5中运行MIDLET :: http://madhukaudantha.blogspot.com/2012/10/how-to-run-midlet-in-java-me-sdk-305.html