Running a Java App like a service in linux and not closing with window

I know its not really a question i should ask you but thought you might have a quick answer for me, I have trying to running a small java application on one of the servers. I want it to run almost like a service, what i mean is i dont want the application to end when the terminal session is ended. So i thought i should put an entry into the /etc/rc.local file as follows (Final Line):
cd /home/bluepoint/Teamselect_ServerApp_v1.0/bin/
java Server
#!/bin/sh
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/home/bluepoint/kmyfirewall.sh
su - bluepoint "/usr/local/tomcat/jakarta-tomcat-5.0.28/bin/startup.sh"
cd /home/bluepoint/startme.sh
As you will see it call a shell script which contains only the following lines (or see attached):cd /home/bluepoint/Teamselect_ServerApp_v1.0/bin/
java Server
but nothing happens when i restart the server. The DB, sendmail, tomcat etc start fine but not my app.
The application works fine if i start it in a terminal window so i know it can run.
Any ideas what im doing wrong??
Kind Regards

It's probably not happening because you missed the -c from the su command. However this isn't the correct approach to daemon processes on linux (which is what you're after).
What you need to do is to place a script in the /etc/init.d directory. This script should take a single argument and start the daemon if the argument is "start", and stop it if "stop". Check out the scripts already in there to see how it's done.
Then go to System Settings/Server settings/Services and enable the new service for the normal run level.

Similar Messages

  • How do I run multiple java apps in one JVM to reduce memory use?

    Hi all,
    I saw an article either on the web or in a magazine not too long ago about how to "detect" if the app is already running, and if so, it hands off the new instance to the already running JVM, which then creates a thread to run the Java app in. As it turns out, my app will be used in an ASP environment, through Citrix. We may have as many as 50 to 100 users running the same app, each with their own unique user ID, but all using the same one server to run it on. Each instance eats up 25MB of memory right now. So the question is if anybody knows of a URL or an app like this that can handle the process of running the same (or even different Java) apps in one JVM as separate threads, instead of requring several instances of the JVM to run? I know this article presented a fully working example, and I believe I know enough to do it but I wanted ot use the article as a reference to make sure it is done right. I know that each app basically would use the same one "launcher" program that would on first launch "listen" to a port, as well as send a message through the port to see if an existing launcher was running. If it does, it hands off the Java app to be run to the existing luancher application and shuts down the 2nd launching app. By using this method, the JVM eats up its normal memory, but each Java app only consumes its necessary memory as well and doesn't use up more JVM instance memory.
    Thanks.

    <pre>
    import java.util.Properties;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.lang.reflect.Method;
    import java.lang.reflect.InvocationTargetException;
    import java.util.Enumeration;
    import java.util.NoSuchElementException;
    public class RunProg implements Runnable, Cloneable
    private String iProg;
    private String iArgs[];
    public static void main(String args[])
    new RunProg().main();
    // first step is to start main program itself
    private void main()
    Properties properties = System.getProperties();
    try
    properties.load(new FileInputStream("RunProg.properties"));
    catch(IOException e)
    System.setProperties(properties);
    int i = 0;
    System.out.println("enter main, activeCount=" + Thread.activeCount());
    while(true)
    String program = properties.getProperty("Prog" + i);
    if(program == null)
    break;
    StringTokenizer st = new StringTokenizer(program);
    String[] args = new String[st.countTokens() - 1];
    try
    RunProg rp = (RunProg)this.clone();
    rp.iProg = st.nextToken();
    for(int j = 0; st.hasMoreTokens(); j++)
         args[j] = st.nextToken();
    rp.iArgs = args;
    Thread th = new Thread(rp);
    th.setName("prog" + i + "=" + program);
    th.start();
    System.out.println("prog" + i + "=" + program + ", started");
    catch(CloneNotSupportedException e)
    System.out.println("prog" + i + "=" + program + ", can't start");
    i++;
         System.out.println("end of main, activeCount=" + Thread.activeCount());
    // next step is to start all others one by one
    public void run()
    try
    Class c = Class.forName(iProg);
    Class p[] = new Class[1];
    p[0] = String[].class;
    Method m = c.getMethod("main", p);
    Object o[] = new Object[1];
    o[0] = iArgs;
    m.invoke(null, o);
    catch(ClassNotFoundException e)
    System.out.println(iProg + "ClassNotFoundException");
    catch(NoSuchMethodException e)
    System.out.println(iProg + "NoSuchMethodException");
    catch(InvocationTargetException e)
    System.out.println(iProg + "NoSuchMethodException");
    catch(IllegalAccessException e)
    System.out.println(iProg + "NoSuchMethodException");
    System.out.println(Thread.currentThread().getName() + ", ended");
    System.out.println("exit run, activeCount=" + Thread.activeCount());
    // setup SecurityManager to disable method System.exit()
    public RunProg()
         SecurityManager sm = new mySecurityManager();
         System.setSecurityManager(sm);
    // inner-class to disable method System.exit()
    protected class mySecurityManager extends SecurityManager
         public void checkExit(int status)
              super.checkExit(status);
              Thread.currentThread().stop();
              throw new SecurityException();
    * inner-class to analyze StringTokenizer. This class is enhanced to check double Quotation marks
    protected class StringTokenizer implements Enumeration
    private int currentPosition;
    private int maxPosition;
    private String str;
    private String delimiters;
    private boolean retTokens;
    * Constructs a string tokenizer for the specified string. All
    * characters in the <code>delim</code> argument are the delimiters
    * for separating tokens.
    * <p>
    * If the <code>returnTokens</code> flag is <code>true</code>, then
    * the delimiter characters are also returned as tokens. Each
    * delimiter is returned as a string of length one. If the flag is
    * <code>false</code>, the delimiter characters are skipped and only
    * serve as separators between tokens.
    * @param str a string to be parsed.
    * @param delim the delimiters.
    * @param returnTokens flag indicating whether to return the delimiters
    * as tokens.
    public StringTokenizer(String str, String delim, boolean returnTokens)
    currentPosition = 0;
    this.str = str;
    maxPosition = str.length();
    delimiters = delim;
    retTokens = returnTokens;
    * Constructs a string tokenizer for the specified string. The
    * characters in the <code>delim</code> argument are the delimiters
    * for separating tokens. Delimiter characters themselves will not
    * be treated as tokens.
    * @param str a string to be parsed.
    * @param delim the delimiters.
    public StringTokenizer(String str, String delim)
    this(str, delim, false);
    * Constructs a string tokenizer for the specified string. The
    * tokenizer uses the default delimiter set, which is
    * <code>"&#92;t&#92;n&#92;r&#92;f"</code>: the space character, the tab
    * character, the newline character, the carriage-return character,
    * and the form-feed character. Delimiter characters themselves will
    * not be treated as tokens.
    * @param str a string to be parsed.
    public StringTokenizer(String str)
    this(str, " \t\n\r\f", false);
    * Skips delimiters.
    protected void skipDelimiters()
    while(!retTokens &&
    (currentPosition < maxPosition) &&
    (delimiters.indexOf(str.charAt(currentPosition)) >= 0))
    currentPosition++;
    * Tests if there are more tokens available from this tokenizer's string.
    * If this method returns <tt>true</tt>, then a subsequent call to
    * <tt>nextToken</tt> with no argument will successfully return a token.
    * @return <code>true</code> if and only if there is at least one token
    * in the string after the current position; <code>false</code>
    * otherwise.
    public boolean hasMoreTokens()
    skipDelimiters();
    return(currentPosition < maxPosition);
    * Returns the next token from this string tokenizer.
    * @return the next token from this string tokenizer.
    * @exception NoSuchElementException if there are no more tokens in this
    * tokenizer's string.
    public String nextToken()
    skipDelimiters();
    if(currentPosition >= maxPosition)
    throw new NoSuchElementException();
    int start = currentPosition;
    boolean inQuotation = false;
    while((currentPosition < maxPosition) &&
    (delimiters.indexOf(str.charAt(currentPosition)) < 0 || inQuotation))
    if(str.charAt(currentPosition) == '"')
    inQuotation = !inQuotation;
    currentPosition++;
    if(retTokens && (start == currentPosition) &&
    (delimiters.indexOf(str.charAt(currentPosition)) >= 0))
    currentPosition++;
    String s = str.substring(start, currentPosition);
    if(s.charAt(0) == '"')
    s = s.substring(1);
    if(s.charAt(s.length() - 1) == '"')
    s = s.substring(0, s.length() - 1);
    return s;
    * Returns the next token in this string tokenizer's string. First,
    * the set of characters considered to be delimiters by this
    * <tt>StringTokenizer</tt> object is changed to be the characters in
    * the string <tt>delim</tt>. Then the next token in the string
    * after the current position is returned. The current position is
    * advanced beyond the recognized token. The new delimiter set
    * remains the default after this call.
    * @param delim the new delimiters.
    * @return the next token, after switching to the new delimiter set.
    * @exception NoSuchElementException if there are no more tokens in this
    * tokenizer's string.
    public String nextToken(String delim)
    delimiters = delim;
    return nextToken();
    * Returns the same value as the <code>hasMoreTokens</code>
    * method. It exists so that this class can implement the
    * <code>Enumeration</code> interface.
    * @return <code>true</code> if there are more tokens;
    * <code>false</code> otherwise.
    * @see java.util.Enumeration
    * @see java.util.StringTokenizer#hasMoreTokens()
    public boolean hasMoreElements()
    return hasMoreTokens();
    * Returns the same value as the <code>nextToken</code> method,
    * except that its declared return value is <code>Object</code> rather than
    * <code>String</code>. It exists so that this class can implement the
    * <code>Enumeration</code> interface.
    * @return the next token in the string.
    * @exception NoSuchElementException if there are no more tokens in this
    * tokenizer's string.
    * @see java.util.Enumeration
    * @see java.util.StringTokenizer#nextToken()
    public Object nextElement()
    return nextToken();
    * Calculates the number of times that this tokenizer's
    * <code>nextToken</code> method can be called before it generates an
    * exception. The current position is not advanced.
    * @return the number of tokens remaining in the string using the current
    * delimiter set.
    * @see java.util.StringTokenizer#nextToken()
    public int countTokens()
    int count = 0;
    int currpos = currentPosition;
    while(currpos < maxPosition)
    * This is just skipDelimiters(); but it does not affect
    * currentPosition.
    while(!retTokens &&
    (currpos < maxPosition) &&
    (delimiters.indexOf(str.charAt(currpos)) >= 0))
    currpos++;
    if(currpos >= maxPosition)
    break;
    int start = currpos;
    boolean inQuotation = false;
    while((currpos < maxPosition) &&
    (delimiters.indexOf(str.charAt(currpos)) < 0 || inQuotation))
    if(str.charAt(currpos) == '"')
    inQuotation = !inQuotation;
    currpos++;
    if(retTokens && (start == currpos) &&
    (delimiters.indexOf(str.charAt(currpos)) >= 0))
    currpos++;
    count++;
    return count;
    </pre>
    RunProg.properties like this:
    Prog1=GetEnv 47838 837489 892374 839274
    Prog0=GetEnv "djkfds dfkljsd" dsklfj

  • How to make a shortcut to run my Java app in Windows?

    Hiya, Coders :-)
    I am an absolute beginner.
    I have copied a little window program from "Java 2 in easy steps".
    I run it from the command line and a little window pops up.
    I cannot find a way to start the app without the command prompt.
    How can I make a shortcut to start it?
    Julian (-_-)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Hiya, Coders ;-)
    As it happens, I have a game from UJ Software: "Shisen for Java".
    It has a shortcut, of course.
    Here are all its details just in case it helps ...
    The game folder is here:
    C:\Program Files\UJ Software\Shisen for Java\jShisen.jar
    Contents of the installed shortcut ...
    General:
    Type of file: Shortcut
    Opens with: Java(TM) Platform SE binary
    Location: C:\Documents and Settings\Julian Bury\Start Menu\Games
    Shortcut:
    Target Type: Executable Jar File
    Target location: Shisen for Java
    Target: "C:\Program Files\UJ Software\Shisen for Java\jShisen.jar"
    Start in: "C:\Program Files\UJ Software\Shisen for Java\"
    Run: Normal window
    I don't suppose this will help.
    It strikes me that nobody knows for certain how to run a java app!
    I have two beginner's books, neither of which mentions anything beyond the command prompt.
    Tricks to minimize the console window are just not professional!
    The solution must be written authoritatively somewhere ...
    has anyone seen it, please?
    Increasingly disturbed ...
    Julian *(-_-)*                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Need lightroom 4.4 asmac is 10.6.8 and not compatible with anything higher. Does this come with the creative cloud? Would really like a disc but that doesn't seem to happen anymore. Currently have cs4 and d7100 hence need 4.4 to open raw Any idea

    need lightroom 4.4 asmac is 10.6.8 and not compatible with anything higher. Does this come with the creative cloud? Would really like a disc but that doesn't seem to happen anymore. Currently have cs4 and d7100 hence need 4.4 to open raw Any ideas? Is this now customer service or does adobe have a customer service team . Site not user friendly. Thanks

    Graham Giles wrote:
    Have you seen this type of problem before? I think it could be a serious issue for anyone in a similar position.
    No; but then, I've not had occasion to use TDM. I've been using firerwire drives for over 10 years, both FW400 and FW800, with no issues except a bit of instability using a B&W G3 machine.
    TDM should be safe. Using cautious, manual copying of files from the Target machine to the Host machine should not result in unexpected loss of files or damage to the Target drive's directories. It should behave exactly the same as if it were an external (to the Host) firewire drive.
    •  I don't suppose there is anything I can do to 'put back' lost items from a separate Time Machine drive which has an up to date backup on it.
    There is probably a way to do that - seems to me that's one of the reasons for a Time Machine volume.
    On the other hand, if the Time Machine volume is rigidly linked to the now-absent OS on the original drive, there may be no way to effectively access the files in the TM archive.
    I know that using a cloned drive would work well in this instance.
    I have no experience with Time Machine, so perhaps someone who has will chime in with suggestions.
    With the machine in TDM with the other machine, have you tried running Disk Utility to see if you can effect repairs to the drive?

  • If i factory reset my ipod touch(5th gen), can i reset it as the option 'set up as new ipod', and then i can just go into the app store/itunes store and restore my music and apps and not icloud with photos and ect?

    if i factory reset my ipod touch(5th gen), can i reset it to the option 'set up as a new ipod', and then i can just go into the app store/itunes store and log into my apple ID so i can just restore my music and apps and not icloud with photos, contacts, ect. and then later i can add contacts that i need/want instead of them restoring them from icloud?
    The reason i asked this question is because i have been wondering this a lot ever since i got an exchange on this ipod (and ive only had it for a few weeks now) because my last ipod had a lot of problems. so after i restored my ipod with my computer/itunes, i downloaded apps that i wanted, and then when i went to the storage to see how much storage was left, it said 0 bytes. i was freaking out because i didnt know how that could be, i mean, cause like, that is impossible when i just 'purchased' it, that the space was full but i looked and all my pictures were on this ipod and i already put them on my computer so i dont need them anymore thats why i wanna reset it now so there is nothing on it so i can have more space for stuff to do and download on it.
    it is updated to iOS 8 but that happened when i purchased it, so i didnt have a choice to update it even though i didnt want to update to iOS 8...
    and i hope you understand my problem..
    i would REALLY REALLY appreciate it if someone could tell me a solution to my problem!!! thank you so much!
    -sierra

    Hey Sierra, You can do just what you have stated. My question, what is your "other"? If it is over 1.5 GB you most likely have corrupt files. Doing a Restore to New, Factory restore should correct it. Just make sure you make a full backup of all information on your iPod to your computer before you restore, so you don't lose your stuff, contacts, videos, pictures, non-iTunes music, etc, use the cable and connect with your computer. Then, via cable, connect to your computer, run the Restore to new, don't use your backup. Treat this iPod as if it was your first one ever. When restore is done, set up and add what info you wish to install on this iPod. The music apps etc you purchased should be on your computer, if not you should be able to retrieve purchased apps and music from iTunes. Any music, videos, apps not purchased from iTunes will be lost to you if you do not save them to your computer or the cloud first. When your done, make a current Backup and you should good to go. Hope this helps. Good luck. Cheers.

  • HT204266 My iPad (version 1, IOS 5.1) has quit connecting with the store. I am unable to update or buy any app. I did a reboot and a reset with deleting the data. I can not find anything in support for this problem. Any help will be appreciated.

    My iPad (version 1, IOS 5.1) has quit connecting with the store. I am unable to update or buy any app. I did a reboot and a reset with deleting the data. I can not find anything in support for this problem. Any help will be appreciated.

    My iPad (version 1, IOS 5.1) has quit connecting with the store. I am unable to update or buy any app. I did a reboot and a reset with deleting the data. I can not find anything in support for this problem. Any help will be appreciated.

  • This database was connected to a Microsoft Access Services site that is not compatible with this version of Microsof Access. You cannot make design changes or modify data in database.

    Hello All,
    I am getting this error while I am connecting my access database website for the change
    "This database was connected to a Microsoft Access Services site that is not compatible with this version of Microsof Access. You cannot make design changes or modify data in database."
    I am using SharePoint 2010 and Microsoft Office 2010.
    I have created one Contact Database Site and now I am trying to modify the layout of the form in Access. and I am getting the error that I have mentioned.
    Please provide help on it.
    Thanks in Advance....

    Hello All,
    I got the answer, we have to enable the port 80 or where the access service is deployed and we have to change Trust setting and also, enable the macro from Access.
    Hope this will help to other....

  • How on earth do you contact adobe - i lost my serial number before registering my standalone software...the phone service is offshore and not very helpful - the chat (i thought it was realtime) has been slow - if i understand, you need your proof of purch

    how on earth do you contact adobe - i lost my serial number before registering my standalone software...the phone service is offshore and not very helpful - the chat (i thought it was realtime) has been slow - if i understand, you need your proof of purchase and they will issue a serial number

    To help address performance issues the Identi-e web site is currently down for maintenance.  If you are trying to redeem a product code to obtain your serial number for the Student & Teacher edition of our software you will currently be unable to do so. We would recommend installing the software in trial mode for the moment until the maintenance period is complete.

  • I've forgotten my questions confidentiality,but I can not be rest or via email due tomi sin the run way email has noticed that heen dsb hotmil and not hotmail

    I've forgotten my questions confidentiality,but I can not be rest or via email due tomi sin the run way email has noticed that heen dsb hotmil and not hotmail

    I've forgotten my questions confidentiality,but I can not be rest or via email due tomi sin the run way email has noticed that heen dsb hotmil and not hotmail

  • Does anyone of you use a HD-camcorder like Canon Legria HF G10 and cut films with Final Cut Express.

    Does anyone of you use a HD-camcorder like Canon Legria HF G10 and cut films with Final Cut Express 4.0.1. I did not buy this product yet but ask before. Now I have 4GB RAM and i5 MacBooK Pro. Do any problems exist using FCE having made films with this camera?
    I save the films als QuickTime films (mov) and create DVDs with iDVD.
    Will the data be too many if I make films with such a camera (HD) so that 1 hour of film cannot be burned to one DVD (or if is not necessary to film with such a good quality because in iDVD the film looses its quality?).

    I was able to find this info regarding the camera:
    AVCHD 1080/50i. 1080/25P (Maximum AVCHD 24Mbps)
    Recording Modes
    MXP 24Mbps / FXP 17Mbps / XP+ 12Mbps / SP 7Mbps / LP 5Mbps
    The 1080/50i (interlaced) modes will work with FCE. PAL in this case. 60i is NTSC.
    Al

  • Why do some of my apps only work ón my iphone and not ón my iPad ?

    Why do some of my apps only work ón my iphone and not ón my iPad ?

    That should work on the iPad. Basic app troubleshooting from Apples support site. Items 1, 2 & 3 should not apply to your situation, but I posted the link at the end if you want to read them.
    4. Restart the application
    If the issue affects only a single app, try closing just that app:
    Press the Home button to return to the Home screen.
    Double-tap the Home button to display recent apps.
    Tap and hold the affected app until the red minus appears.
    Tap the red minus to quit the app.
    Press the Home button, then restart the app.
    5. Restart your device
    Hold the Sleep/Wake button until "slide to power off" appears. Slide to power off your device. When it is off, press the Sleep/Wake button to turn it back on.
    6. Reinstall the affected application
    Remove the application from your device and reinstall it.
    Touch and hold any application icon on the Home Screen until the icons start to wiggle.
    Tap the "x" in the corner of the application you want to delete.
    Tap Delete to remove the application and all of its data from your device.
    Press the Home button.
    Go to the App Store.
    Search for the application and then download it again.
    Note: If it is a paid app, ensure you are using the iTunes account you purchased the app with originally. If it is not, you will be charged for the app again. For more information regarding downloading previously purchased items, see this article.
    7. If the issue is still unresolved
    If you continue to experience the issue, contact the developer of the application for further assistance.
    http://support.apple.com/kb/TS1702

  • Words look like they are in italics and not clear

    the type face for the words in emails looks like they are in italics and not strong and clear like internet explorer...t
    == This happened ==
    Every time Firefox opened
    == i switched from internet explorer

    Roughcoat wrote:
    didn't get an answer
    Be patient. This isn't a chat, but a forum.
    Not too technical, but basically:
    bottom layer:  background
    middle layer:  frame
    top layer:       dog
    Use a transparent canvas larger than the layers.

  • Running multiple java apps simultaneously, each using a different jre.

    I have a situation where I have 3 or 4 applications (and one applet) that were built over time, each with a different version of the jdk (ranging from 1.2.2.005 to 1.3.2). I need to know of a way (and it must exist) to run each of these applications on the same machine, and at runtime, have each application (or applet) run with its respective version of the jre. Certainly, one could change some source code and make all programs compatible with a particular jre, but that doesn't solve my problem if a new app is built with a new version of the jdk down the road. Currently, each runs fine by themselves, but if I try to run them together as different processes, some won't do anything because the default jre may not be what it needs. Would the Java Plug-in software have a role to play in this? Is there a way to specify (link) which application should use which jre?
    P.S. These applications (right now) don't have to interact or interface in any way. I just need to have them all running as separate processes on the same machine and be able to jump from one to the other.

    However ... if you have the programs running in Java1.x, I
    wouldn't recommend to let it run under Java 1.y; atleast
    not without thorough testing.I do it all the time and have not had a problem. I'm
    currently using JDK 1.4 beta 3 and I regularly run a
    Java application written with JDK 1.1.
    It sounds like the programs you are running are
    relying on behavior that is not guaranteed. If that
    behavior changes in a later version, it can break your
    program. Program to the contracts provided by other
    classes and packages, and you should have few or no
    problems.I guess you are right. Maybe you can help me with the following problem (this is off this topic, I know): I have Swing JDK 1.2 and Swing from JDK 1.3. I have to register keys on components.
    In JDK 1.2 I can use registerKeyBoardAction, in JDK 1.3 I have to use input maps and action maps. Both solutions only work with certain JDK. What I did was writing code which detects the java version and takes the appropriate action to register the keys. To make the thing compile in 1.2, I have to use reflection for the input/action map methods, because they are only available in 1.3.
    Any idea how to solve this more elegantly ?

  • Running multiple java apps simultaneously, using different versions of jre.

    I have a situation where I have 3 or 4 applications (and one applet) that were built over time, each with a different version of the jdk (ranging from 1.2.2.005 to 1.3.2). I need to know of a way (and it must exist) to run each of these applications on the same machine, and at runtime, have each application (or applet) run with its respective version of the jre. Certainly, one could change some source code and make all programs compatible with a particular jre, but that doesn't solve my problem if a new app is built with a new version of the jdk down the road. Currently, each runs fine by themselves, but if I try to run them together as different processes, some won't do anything because the default jre may not be what it needs. Would the Java Plug-in software have a role to play in this? Is there a way to specify (link) which application should use which jre?
    P.S. These applications (right now) don't have to interact or interface in any way. I just need to have them all running as separate processes on the same machine and be able to jump from one to the other.

    Write a batch file that sets the environment properly and restores it afterwards, here is a sample batch file we use which switches to IBM's JRE to run an app:
    OLDPATH=$PATH
    PATH=$PATH:"/usr/local/java/IBMJava2-13/jre/bin"
    OLDCP=$CLASSPATH
    CLASSPATH="/usr/local/java/IBMJava2-13/jre/lib/rt.jar:."
    OLDHOME=$JAVA_HOME
    JAVA_HOME="/usr/local/java/IBMJava2-13/jre"
    # put the command to execute your program here
    java -jar app.jar
    PATH=$OLDPATH
    CLASSPATH=$CLASSPATH
    JAVA_HOME=$JAVA_HOME
    This is for Linux, but it should be possible to write one for Windows too.

  • Problem running my Java apps in my LG phone. Please help!

    Hi all!!
    I am quite new to the world of J2me, altough I've been coding Java for quite a few years now.
    Recently I bought a LG u 8120 phone with Java-support so I decided it was time to step into the mobile Java-world.
    Now I have written my first small app, a simple timer application which my phone (strangely enough) does not already have.
    So what happens is this : I create my app on my PC and package it with the WTK into a jar -file and a jad-file which i transfer to the phone.
    After this I can see the name of my app in the list of available programs in the phone. But when I try to run it: Nothing. The Java logo shows up for a few seconds and then I am tossed back to the menu.
    I have thought of the following as possible problems:
    1. the 8120 does not support MIDP2.0
    2. I am doing something wrong transfering the files
    3. I have missed out on one or several necessary steps in the process
    Anyone who have developed Java apps for LG phones who can give me some hints?
    I've used the Sun J2ME Wireless Toolkit 2.2 with MIDP2.0 and CLDC1.1 .
    The apps works fine in the emulator. The problem starts when I want to run it in the phone. The phone I've tried is an LG u8120. LG apparently does not want to make life easy for its customers, so there is no support for transfering Java apps in the vendor-supplied software. I suppose that's because they want you to only download stuff from their site. However, after surfing around on some discussion forums for a while I found a program called G-thing which can be used to upload Java apps to LG-phones via USB.
    Any help is very appreciated!
    Thanks,
    Sarah

    Thanks,
    I have tried this and ruled out some of the possible causes.
    When I added some more exception handling, I could see that a "java.lang.IllegalArguenException" is thrown.
    When I ran the AudioDemo package that came with WTK2.2 I noticed that the examples that uses WAV-files do not work while the rest works fine.
    My new theory is now that the u8120 does not support the WAV-format, so I will try with an mp3 instead and see what happens.
    Anyone who knows if LG-phones support WAV-format?
    /Sarah

Maybe you are looking for