J2ME模拟器似乎没有在Eclipse中打开

时间:2011-12-29 21:38:41

标签: eclipse java-me emulation

我目前安装了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();
    }
}

}

5 个答案:

答案 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