3

Possible Duplicate:
You must include the platform port before the LWUIT in the classpath runtime exception

I am just now started the LWUIT use in J2ME. I don't have more knowledge of LWUIT but I know better J2ME. I have added library of LWUIT in my J2ME project, it's compiling fine but at run time it is showing below exception:

java.lang.RuntimeException: You must include the platform port before the LWUIT in the classpath
    at com.sun.lwuit.impl.ImplementationFactory.createImplementation(ImplementationFactory.java:67)
    at com.sun.lwuit.Display.init(Display.java:406)
    at HelloMidlet.<init>(HelloMidlet.java:26)
    at java.lang.Class.newInstance(), bci=0
    at com.sun.midp.main.CldcMIDletLoader.newInstance(), bci=46
    at com.sun.midp.midlet.MIDletStateHandler.createMIDlet(), bci=66
    at com.sun.midp.midlet.MIDletStateHandler.createAndRegisterMIDlet(), bci=17
    at com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=27
    at com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=52
    at com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=8
    at com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=161
    at com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26

How to solve this problem?

Below is my code:

import com.sun.lwuit.*;
import com.sun.lwuit.animations.CommonTransitions;
import com.sun.lwuit.animations.Transition3D;
import com.sun.lwuit.events.*;
import com.sun.lwuit.layouts.BorderLayout;
import com.sun.lwuit.layouts.BoxLayout;
import com.sun.lwuit.plaf.UIManager;
import com.sun.lwuit.util.Resources;
import java.io.IOException;

public class HelloMidlet extends MIDlet implements ActionListener {
    private Form form1;
    private Form form2;

    private Command cmdRotate = new Command("Rotate");
    private Command cmdSlide = new Command("Slide");
    private Command cmdExit = new Command("Exit");
        public HelloMidlet(){
            Display.init(this);
        }
  public void startApp() {
        Resources r;
        try{
            r=Resources.open("/TimelineTheme.res");
            UIManager.getInstance().setThemeProps(r.getTheme("LWUITDefault"));
        }catch (IOException e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        form1 = new Form("Form 1");
        form1.setLayout(new BorderLayout());
        form1.addComponent(BorderLayout.NORTH, new Label("My First Form"));
        form1.addComponent(BorderLayout.WEST, new Label("WEST"));
        form1.addComponent(BorderLayout.CENTER, new Label("CENTER"));
        form1.addComponent(BorderLayout.EAST, new Label("EAST"));
        form1.addComponent(BorderLayout.SOUTH, new Label("Click Rotate"));
        form1.addCommand(cmdRotate);
        form1.addCommand(cmdExit);
        form1.addCommandListener(this);
        form1.setTransitionInAnimator(CommonTransitions.createSlide(
                    CommonTransitions.SLIDE_HORIZONTAL, true, 1000));

        //Setup Form 2
        form2 = new Form("Form 2");
        form2.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
        form2.addComponent(0,null,new Label("This is the second Form"));
        form2.addCommand(cmdSlide);
        form2.addCommand(cmdExit);
        form2.addCommandListener(this);
        form2.setTransitionInAnimator(Transition3D.createCube(1000, true));

        form1.show();
  }

  public void pauseApp() {}

  public void destroyApp(boolean unconditional) {}

  public void actionPerformed(ActionEvent ae) {
   if (ae.getCommand()==cmdExit) {
            notifyDestroyed();
        } else if (ae.getCommand()==cmdRotate) {
            form2.show();
        } else if (ae.getCommand()==cmdSlide) {
            form1.show();
        }
  }
}
Community
  • 1
  • 1
Mr. Sajid Shaikh
  • 7,051
  • 4
  • 21
  • 35
  • I think the Midlet code is not necessary to solve the issue. Post your project.properties instead, more specifically, the libs.classpath property might be useful. – mdelolmo Feb 14 '12 at 09:19

1 Answers1

2

Did you see that post? You must include the platform port before the LWUIT in the classpath runtime exception

I think that this is a similar problem. Try to solve it, as suggested in the answer in above question:

The problem was that in the UI jar I was including. LWUIT comes with 2 "sets" of UI.jar. The generic one which is in LWUIT\UI folder and the platform specific ones which are in the LWUIT\Ports folder.The generic one is being used as "parent" project containing all the common code,however if you MUST import the .jar file which is for your platform. As readme file says:

While these projects will compile easily they will be useless for any purpose since they don't include the binding glue for the platform, to use the platform one needs to use the appropriate projects underneath the specific ports directory to a given platform.

While I was recompiling the library in order to remove Transitions3D.java file, I recompiled (and then imported ) the generic UI.jar. The correct thing to do is compile, the parent project (the generic UI.jar) THEN compile the port specific library (in my case the LWUIT\ports\MIDP\UI.jar) and then import it in your project and you are done.

Community
  • 1
  • 1
Mun0n
  • 4,438
  • 4
  • 28
  • 46
  • I didn't get any idea from their, can you please explain me what he told their? – Mr. Sajid Shaikh Feb 14 '12 at 09:33
  • I have downloaded latest LWUIT zip file but in it their is no like folder LWUIT\ports and no UI.jar file. How can i solve with this answer? – Mr. Sajid Shaikh Feb 14 '12 at 09:52
  • You should download LWUIT 1.5 from SVN here: http://java.net/projects/lwuit/sources/svn/show There you can find the UI ports – Mun0n Feb 14 '12 at 10:35
  • 2
    Use the platform specific port from the lib directory and make sure the UI port resides before the IO port. you DO NOT need the UI.jar since its content is included in the platform specific port. – Shai Almog Feb 14 '12 at 11:09
  • can you any one please provide me download link for lwuit which workes in netbean,or tell me how to download from this link(SVN) http://java.net/projects/lwuit/sources/svn/show – Mr. Sajid Shaikh Feb 15 '12 at 05:00
  • You need to install SVN in your computer. You must need this http://tortoisesvn.net/downloads.html . When you have Tortoise svn installed, you must do a Checkout from the LWUIT SVN web that I give you before. For more info about version control http://en.wikipedia.org/wiki/Revision_control . Tutorial for Tortoise SVN http://www.youtube.com/watch?v=4yola1Q9KEQ – Mun0n Feb 15 '12 at 08:45