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

Similar Messages

  • Running multiple java-apps in single JVM?

    We have about 125 Citrix clients running on 5 Citrix Servers. We are investigating a new very big development project which will cover about 10 main projects with 15 Applications each. The complete project will be written in Java.
    Basically, each module will have it's own JVM. BUt, when each client runs a couple of modules, the servers will surely run out of memory...
    I searched for way's to run different modules within 1 single JVM but it seems to be 'not done', because of 'System.exit()', 'Static Variable' probs to name only 2.
    Any idea's on how to implement this?
    thanks.

    thanks for the reply.
    Yes, I assume the server will run out of memory.
    1) Our citrix servers are consuming about 3/4th of their 4Gb memory capacity without any java_application running.
    2) Each of our 5 Citrix servers has 25 users active
    3) Each JVM takes about 20mb memory
    4) Each user will run at least 3 app's simultaneously
    Abouve results in 3*20=60Mb / user * 25= 1,5Gb memory extra needed.
    Can you give me an example of a Thread.sleep(60000) test_pgm?
    and/or an example for a "classloader" program to launch each app in its ow sandbox (in same JVM)?
    (eventually a link to get more info on this)
    thanks

  • 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 2 java apps means 2 JVM instances ?

    For each running Java application I start on my desktop do I get a seperate instance of the JVM ? If so that seems like such a waste ...

    Yes. If you find this wasteful, though, you could write a Java application that runs your applications in a single JVM, in separate threads, but that would be violating the first two rules of optimization:
    1. Don't do it.
    2. Don't do it yet.
    Those rules are there to remind you not to try to optimize a situation until you know that it needs to be optimized and until you know how to optimize it.

  • 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.

  • How do you have multiple account apps on one device

    I have an iPod touch gen 2 and it's set up on my parents computer. I want to be able to sync apps from there accounts and my account on the one device. When I do it, it asks me to authorize it on the computer. I do it and it copies the apps on to there computer. When I'm done they delete the apps from the computer. When I sync again it deletes the apps. How do I do it?

    From the "iPod: Frequently Asked Questions" document found here...
    http://docs.info.apple.com/article.html?artnum=60920
    Question: Can I update more than one iPod with my computer?
    Answer: Yes. Each iPod communicates a unique device identification number to your computer, allowing you to take advantage of automatic music transfers to your iPod even if you share a computer with another iPod user. You can choose to automatically update your entire music collection on multiple iPod players or choose to update selected playlists, allowing you to transfer custom playlists to individual iPod players.

  • Multiple Java Apps in same JVM

    Hi,
    I have created a shell script which calls my java application with heap size as below:
    /bin/java -Xms:3072M -Xmx:3072M ...
    I'm calling the shell script multiple times in the background to create multiple instances of my java application in the same box. I have set a limit of 5 for java applications at any point of time. But what I'm experiencing is that first few sets of java application finish very fast (almost 3 mins) but last few sets taking a lot of time (around 10 mins). The quantity of data processed by all java applications is same but why later sets of java application is taking longer?
    Can I do something here so that later sets of apps also completes in 3 mins? Can I refresh java heap before submitting another set of java applications? Java application is not mine but I have purchased from 3rd party. Please help!!!
    Thanks in advance.

    > why later sets of java application is taking longer?
    Probably because of CPU usage.  But could be memory.
    >Can I do something here so that later sets of apps also completes in 3 mins
    You tune the task, the complete task, to the box.  That means you must understand in detail what is taking time and then architect that to make the best use of the available CPUs and memory (and other resources as used by the task.)

  • Run two java apps in separate jvm's on the same machine?

    At the command line, when you type:
    java MyClass
    and then type:
    java MyClass
    are the two programs (assuming neither terminated prior to the other's execution) is it running in a separate Java Virtual Machine or the same one?
    And if they're running in the same JVM, is there a way to run the second program in a separate JVM for testing purposes even though they're on the same computer? (btw I'm running windows XP).

    thanks all...just a quick follow up question. Are two
    separate jvm's on the same computer a good
    representation of two jvms running on separate
    computers?Don't know what you mean by "a good representation."
    They're two separate processes. For basic testing, not worrying about performance, etc., and if your code doesn't do anything special to treat two VMs on the same box differently than two VMs on separate boxes, it's probably a reasonable approximation.

  • How to uninstall multiple cloud apps at one time?

    How do I uninstall multiple cloud apps at one time from windows 7 pro?

    Hi Bigdog3766,
    Please refer to the below mentioned link under "Uninstall Apps":
    http://helpx.adobe.com/creative-cloud/help/install-apps.html
    Let us know if it helps,
    Thanks!
    Gurleen

  • 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 *(-_-)*                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • How to run multiple java files concurrently using command line?

    Hi,
    I have to write a script to run multiple java files and c files concurrently. Say, A and C are java files and B is another binary executable file, I have to make sure they are run in the order A-B-C, then I was trying to run by using
    java A & ./B & java C
    But it turned out that B could run before A started... Is there any way that I can ensure that A runs before B, and B runs before C by using the command line?
    Thanks a lot.

    GKY wrote:
    Sorry, I didn't make my question clear enough...
    A has to give some output files that B needs to get started,Then B can start at any time--even before A--and just wait for those files to be written. For instance, A could write to a temp file, then rename it to the real name. However, if there are multiple files, and they all have to exist, even this won't necessarily work. There are other approaches that will though.
    although writing the output takes very short time,Depends on when the OS decides to give A CPU time, what else is going on on that disk controller and/or network, etc.
    B could still run before A finishes the writing, As it can if you sleep for 1, or 10, or 1,000,000 seconds before starting B.
    if B can't find the info it wants, it fails to move on. That's why I need to make sure A starts before B.No, you need to make sure A's data is there before B tries to use that data.
    Edited by: jverd on Jul 29, 2008 1:06 PM

  • Multiple Java apps running in one VM

    I have one VM that runs one application with GUI, database. It also spawns another VM to run more apps through Sockets.
    Is there a way to run several Java apps within a single VM? If so, I can get rid of those interprocess communication stuff and make things easier.
    Thanks in advance.
    Lee

    Yes you can do what to want to do. It is actually very benificail. Take a look at this article:
    http://java.sun.com/docs/books/performance/1st_edition/html/JPClassLoading.fm.html#24732
    here is code to do it as well:
    package com.ist.system;
    import com.ist.util.LogMsg;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.lang.reflect.Method;
    import java.net.InetAddress;
    import java.net.Socket;
    * This class was pulled from:
    * http://java.sun.com/docs/books/performance/1st_edition/html/JPClassLoading.fm.html#24732
    * It was written to provide the ability to launch many applications in the
    * same JVM.  By doing this, it will save on system resources like RAM.  When
    * the <code>launch</code> method is called, it will check to see if there is a
    * VM already running.  If there is, it will launch the new application in the
    * currently running VM.  If there isn't, it will create a process that will
    * keep a VM alive until there are no more applications running.  Once there are
    * no more applications running, this service will System.exit. 
    public class Launcher {
        static final int socketPort = 9876;
         * This method will launch a new instance of the passed in className
         * in an already running JVM if one is already running.  If one is not
         * running, this application will create one.
         * @param className the class which you wish to launch
        public void launch(String className) {
            LogMsg.shortDebug("Trying to launch: " + className);
            Socket s = findService();
            if (s != null) {
                LogMsg.shortDebug("Launcher found service");
                try {
                    OutputStream oStream = s.getOutputStream();
                    byte[] bytes = className.getBytes();
                    oStream.write(bytes.length);
                    oStream.write(bytes);
                    oStream.close();
                    LogMsg.shortDebug(className);
                } catch (IOException e) {
                    LogMsg.warn("Launcher couldn't talk to service");
            } else {
                LogMsg.event("Starting new service");
                Launcher.go(className);
                Thread listener = new ListenerThread();
                listener.start();
                LogMsg.shortDebug("Started service listener");
        protected Socket findService() {
            try {
                Socket s = new Socket(InetAddress.getLocalHost(),
                socketPort);
                return s;
            } catch (IOException e) {
                // couldn't find a service provider
                return null;
        public static synchronized void go(final String className) {
            LogMsg.shortDebug("Launcher running a " + className);
            Thread thread = new Thread() {
                public void run() {
                    try {
                        Class clazz = Class.forName(className);
                        Class[] argsTypes = {String[].class};
                        Object[] args = {new String[0]};
                        Method method = clazz.getMethod("main", argsTypes);
                        method.invoke(clazz, args);
                    } catch (Exception e) {
                        LogMsg.shortDebug("Launcher coudn't run the " + className);
            }; // end thread sub-class
            thread.start();
            runningPrograms++;
        static int runningPrograms = 0;
         * All programs wishing to exit should call this method and NOT
         * use System.exit.  Calling System.exit will kill all the applications
         * running in this VM.
        public static synchronized void programQuit() {
            runningPrograms--;
            if (runningPrograms <= 0) {
                System.exit(0);
        public static void main(String[] args) {
            LogMsg.setupTraceLevel();
            Launcher l = new Launcher();
            l.launch(args[0]);
    }

  • How do i run a java program an another directory?

    How do I run a java program that's in a different directory?
    I have been doing this in the command line:
    java "C:\Document and Settings\freeOn\Desktop\Java\Test\test"
    and I get
    Exception in thread "main" java.lang.NoClassDefFoundError:
    C:\Document and Settings\freeOn\Desktop\Java\Test\test
    I just thought there might be a quick way to do this and not
    have to cd to the following dir evertime i want to run an app in
    console.
    The test.java file is this:
    import java.io.*;
    public class test {
        public static void main(String args[]) {
          System.out.println("Testing.....");

    Ok I looked in the java help and found the classpath, this makes it alittle easier.
    java -cp C:\DOCUME~1\freeOn\Desktop\Java\Test\ test
    At least i can run this in the run dialog which makes it easier thanks for you help kota balaji

  • How can I run a java-application on starting of Windows 2000

    How can I run a java-application without any user on starting of Windows 2000?
    For example, if the computer is restarted and nobody enter into it yet, my java-application should run anyway.
    How can I do that?

    Hi, you have to put it in a Windows service.
    To do this you have a program, Srvany.exe that allow to insert a .exe or .bat program in a Windows service.
    For example, i develop a program, TomcatGuardian and i put it in a service because i need to run it in a server without Administrator logged in.
    Regards,
    Ivan.

  • Does anybody know how I can run multiple skype accounts on my macbook air?  I found workarounds on youtube, followed the steps to set-up a second skype account but I can't login using the second account.

    How do I run multiple skype accounts on my macbook air.  I'm using MAC OS X 10.6.8.  I followed the workaround steps on youtube to set up a skype b account (application and folder) but when I open the skype b account I can't login. I get an error message saying "please check your network settings and try again".  My 1 skype account works but I need to run 2 skype accounts at the same time, 1 for a client and my own personal account.
    Thanks
    Yolanda

    How do I run multiple skype accounts on my macbook air.  I'm using MAC OS X 10.6.8.  I followed the workaround steps on youtube to set up a skype b account (application and folder) but when I open the skype b account I can't login. I get an error message saying "please check your network settings and try again".  My 1 skype account works but I need to run 2 skype accounts at the same time, 1 for a client and my own personal account.
    Thanks
    Yolanda

Maybe you are looking for