Эмулятор J2ME не открывается в Eclipse - PullRequest
1 голос
/ 30 декабря 2011

В настоящее время у меня установлен Java ME SDK 3.0.5, и я запускаю MIDLET из Eclipse.

Когда я запускаю приложение под эмулятором устройства, я получаю следующие данные в консоли:

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 ]

3 голосов
/ 30 декабря 2011

Вывод довольно прост, он говорит о том, что синтаксис командной строки для эмулятора неверен.

Перейдите в настройки устройства Java ME и отредактируйте параметры командной строки / запуска эмулятора в соответствии с требованиями.

Переключение IDE может работать для вас как кратковременное решение, но всегда лучше докопаться до сути проблемы. Кроме того, это поможет вам понять структуру эмулятора.

1 голос
/ 21 мая 2012

У меня была похожая проблема при запуске базового приложения JavaMe в Eclipse: «Поврежденный JAR, ошибка при чтении». Это сработало для меня после того, как я начал эту серию для начинающих http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.mtj.doc.user/html/gettingstarted/prepare_workbench.html (постарайтесь не пропустить ничего упомянутого здесь).
Обратите внимание, что при запуске приложения используйте «Запустить как эмулированный Java ME JAD» (- в верхнем правом разделе «Выполнение» на странице) в «Дескрипторе приложения» (- из левого меню.)

Это поздний ответ, но он может просто помочь кому-то в будущем.

1 голос
/ 30 декабря 2011

Я переключился на Netbeans, который имеет встроенную поддержку J2ME (в отличие от необходимости устанавливать сторонний плагин для Eclipse), и теперь он работает отлично.

0 голосов
/ 08 ноября 2012

Вот сообщение о том, как запустить jar из эмулятора (Java ME SDK 3.0.5)

(Как запустить MIDLET в Java ME SDK 3.0.5 :: http://madhukaudantha.blogspot.com/2012/10/how-to-run-midlet-in-java-me-sdk-305.html

0 голосов
/ 31 декабря 2011

Если вы любите приключения и хотите разработать / запустить приложение JavaME без IDE, у меня есть некоторый луч надежды, напишите пакетный скрипт (или скрипт оболочки для системы linux), чтобы вручную запустить эмулятор с определенным 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.

...