Jar creation in j2me - java-me

I developed an application in j2me,created a jar for that application. Now I want this jar to be used in another application. I imported that jar in my first application, but when I try to import that jar in my class (code) (for example:import.org), that jar file is not showing as option. Is there anything to be done when creating a jar which is to be used in another project?

You can try this,it works fine:
Create New Project Without any midlet.
Create your classes which you want in library.
Compile all classes.
Right click on Project & Select Properties.
Click on creating Jar & Give name for Jar & Jad
Now Clean & Build Your Project.
Your Library ready to use in jar file.
See Create library in j2me.

Related

Can't find or load main class to make a Javafx jar in IntelliJ IDEA

I made my first Javafx Application in IntellIJ IDEA it runs perfectly but i have a problem.
I can't make an executable jar for this Application.
To be more explicit whenever i try to search for the main class i can't find it in the artifact tab.
I tried making a normal jar (in the artifacts menu they give you the choice between normal jar and javafx application jar) and the main is detected.
It's a known issue. You can type the fully qualified class name manually as the workaround (foo.bar.MyClass).

How to add javadoc and sources for external Jars to Domino Designer?

Domino Designer is based on Eclipse so I can change most of project's properties, like the build path and so on.
The Java team gives us a JAR to implement in our XPages and our managed beans but it's a pain to not have the javadoc and sources associated to help us in our code.
I tried to associate Javadoc and sources in "Project properties > Java Build Path > Librairies" to the JAR but it's lost when I save and re-open (the JAR is store in Code/Jars).
Is there another way to use a JAR and those resources ?
Including the source code in the jars will work. That's what we do for OpenNTF Domino API.
Maybe by digging into the files in Package Explorer it would be possible to work out where it's set and automate setting it (possibly from xsp.properties or notes.ini or somewhere else) via a custom builder. Swiper on OpenNTF is an example of a DDE plugin that adds a custom builder.

Liferay - Share Utils class between 2 different portlets

I'm developing a Liferay application, consisting on 2 different portlets, an both have to make certain operations in common, so I decided to put that operations in static methods in an external Utils class.
I have to externalize that class to avoid duplicating the same code in both portlets, and I want to have the portlets in different WAR files.
I know I can package the Utils class in a JAR file, but we are still developing and we don't want to regenerate the JAR and restart the Tomcat for every change.
Which is the best option and how can I perform it?
If you're using the Liferay SDK, you can use the clients (recently changed to shared) directory to put your common code.
A good example is how deploy-listener-shared is used in conjunction with deploy-listener-hook.
From what it looks like, all the configuration you need to do is to modify your build.xml files that will use the client\shared classes. If you look at build file of deploy-listener-hook you can see all you need to add is the.
For the new SDK:
<property name="import.shared" value="my-utils-shared" />
For the older SDK:
<property name="dependent.clients" value="my-utils-client" />
Hope this helps!
There is another method that involves building a JAR file but it doesn't require a server restart (on Tomcat at least).
Write a build script for your JAR file so it compiles, builds the JAR and finally copies it to the following location:
{tomcat}/webapps/ROOT/WEB-INF/lib
Then in your portlet open the "liferay-plugin-package.properties" (in Liferay Developer Studio / Liferay IDE this should open with a nice GUI).
Then add the name of your JAR to the "portal-dependency-jars" list in this file so in the source it would like (Or just hit the "Add" button in the GUI and select the JARs you want):
portal-dependency-jars=my-custom-lib.jar,my-other-custom-lib.jar
Save the file, and redeploy the portlet, and the JAR will be copied across when the portlet is deployed.
I've used this method for custom JARs, and 3rd party JARs that I've needed to use in my portlets.
For the development phase just package the jar file with both applications.
Unless one application depends on the other somehow it is completely ok.
Another solution is to use JRebel tool. It will allow you to redeploy jar in tomcat without restarting.
Also you may have several portlets in one .war. You may just define them both in portlet.xml.

Classloading conflicts with apache commons classes for app deployed to WAS 6.1

I have an app that uses apache-commons-collections v3.2.1. When I deploy the war file using the WAS 6.1 Integrated Solutions Console I get errors because the commons-collections.jar file in isclite.ear gets loaded before the one that I bundle with my .war file. The problem is that my application requires v3.0.0+ of commons collections. The one in isclite.ear is version 2.1.
So, can I deploy into WAS 6.1 without involving isclite? Can I just drop a war file into a directory somewhere? Is there an option I can select in the process of deploying through the admin interface to skip or remove the isclite.ear dependency?
Thanks.
I had a very similar problem with ColdFusion where a jar in the server was a different version than the one that was needed by my application. I had to call a non-delegating loader (one that doesn't ask the parent to first load the class before loading the requested jar). The loader I used is open source. You can find out about it at
http://groups.google.com/group/javaloader-dev

Java ME bundle Microlog jars with my midlet jar

I'm pretty new to Java ME and i'm trying to use Microlog to handle logging in my midlet.
In eclipse i can reference Microlog jars and it's all good in dev time,
but when i try to launch the application the jars aren't found on the device.
How can i bundle those referenced libs into my midlet?
Someone have any experience with using Microlog in a midlet?
Thanks.
The classes are not found, because they are not inside the final MIDlet suite you are trying to run run in the device. In fact, you can't add external jars directly inside your midlet jar file as J2ME class loader is much more simple than the one in desktop Java. It only loads the classes found inside the midlet jar.
So, you have to extract everything from the Microlog jar and put them into you midlet jar just like you put your own classes and other resources. Probably you can configure your build tool to do this automatically for you.
Eclipse is able to find the classes because you have added the jar into your project's classpath.
Just a little addition. If you are using Eclipse to export the midlet you are able to generate the jar-file including all the classes of the dependencies for you.
Select "Java Build Path" of your project and then "Order and Export". Make sure the microlog jar-files are checked in that list. This will bundle everything into one jar-file.
Hope this helps.
I would recommend to use ProGuard to reduce the size of the final jar. Please read this article to figure out how to do it with Microlog:
http://myossdevblog.blogspot.com/2009/06/using-proguard-to-shrink-microlog.html

Resources