Using GUI Runtime.exec() another GUI, later come up, previous gone

I try to run
try {
     Runtime rt = Runtime.getRuntime();
     Process process = rt.exec("1.bat");
InputStream stdin = process.getInputStream();
InputStreamReader isr = new InputStreamReader(stdin);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<OUTPUT>");
while ( (line = br.readLine()) != null)
System.out.println(line);
     int exitVal = process.exitValue();
     System.out.println("Process exitValue: " + exitVal);                         
catch (Throwable e) {
     e.printStackTrace();
1.bat file have
================
del *.class
set path=%path%;c:\j2sdk1.4.2\bin
javac IDE.java
java IDE
I run the Runtime.exec code in Swing GUI, I will compile another
Swing GUI (IDE.java) and run it. It work, but after when IDE GUI popup,
all the button in the first calling GUI is gone, anyone have solution for it ? Thanks in advance.

Your code is probably being executed in the event thread of the first application, thus blocking any and all screen updates.
You should wrap the code in a separate Thread and start it in parallell.

Similar Messages

  • I can not use the Runtime.exec() to open a file

    hi,
    i use java to open a pdf file like this:
    Runtime.getRuntime().exec("start c:/example.pdf");
    it works ok,but when i use java web start it do nothing,
    pls help me,why it can not work.
    thanks!

    I'm doing this with my app (getting access to the local filesystem and launch applications) and it works just fine.
    Things to do:
    1)
    Make sure your app is signed.
    (I used jarsigner to sign my jar file, comes with the j2se)
    2)
    Make sure in your .jnlp file that you are allowed to acces the filesystem, check your <security tags>
    <security>
    <all-permissions/>
    </security>
    3)
    From within the app try this to launch Acrobat Reader (win2000):
    Process pro = Runtime.getRuntime().exec("cmd.exe /C start acrord32");
    pro.waitFor();
    if (pro.exitValue() != 0)
    throw new IOException("AcrobatReader not installed");
    pro.waitFor() awaits your interaction with the filesystem, like closing an error popup dialog if os cannot find your file.
    When returning into your app, then check the exitValue. in windows, the exitvalue 1 is returned if the the file is missing. 0 if ok!
    I'm throwing an exception to handle further actions like opening a browser window with a given url to download the program.

  • Use of Runtime.exec

    I know that there are security concerns with making a call to the java.lang.Runtime's
    exec method, but are there any performance concerns? When an exec call is made
    by an object within the application server does the forking of a new process to
    execute the command cause a process equivalent in size to the application server
    to be generated? Our application server process is quite large, so this would
    be an expensive operation.

    The OS-level semantics of Runtime.exec are tied to JVM implementation (that's why
    it doesn't work on most releases of the MacOS for example)...
    Runtime.exec has a lot of not-so-intuitive handholding associated with it. For
    example, did you know that on most flavors of Windows JVMs, you have to read out
    of the STDOUT and STDERR streams, or the process you invoked will hang when their
    buffer fills up? JavaWorld ran an article a while back with all the details on
    this-- you can write a stream gobbler to suck up anything and send it to /dev/null
    to avoid problems.
    "Ash Beitz" <[email protected]> wrote:
    >
    I know that there are security concerns with making a call to the java.lang.Runtime's
    exec method, but are there any performance concerns? When an exec call
    is made
    by an object within the application server does the forking of a new
    process to
    execute the command cause a process equivalent in size to the application
    server
    to be generated? Our application server process is quite large, so this
    would
    be an expensive operation.

  • Runtime.exec() - using cp and files with spaces on unix

    I'm using the Runtime.exec method to copy files in a unix environment. This works fine until there is a file where the name has spaces in it. I've read the article on the pitfalls of using runtime and how it breaks a string on white spaces and this is what is happening. I've also found another topic that was having the same problem, but they were using /usr/bin/dos2unix. I've tried putting quotes around the filename, but it still breaks on the first space. Any suggestions on how to get around this or another way of doing this would be greatly appreciated.
    An example of the os command string is:
    /usr/bin/cp /tmp/file with space.doc /docs
    Thanks!

    Hi!
    Well I dont have any Sun machine right here to try this but in windows It works great.
    Have you tried something like this ?
    import java.io.*;
    public class OSCopy {
        public static void main(String[] args) {
            try {
                String space = " ";
                String copycmd = "E:\\cp.cmd";
                String source = "E:\\File with space.txt";
                String destination = "E:\\tmp";
                String cmd = copycmd + space + "\"" + source + "\"" + space + destination;
                System.out.println("cmd: " + cmd);
                Runtime runtime = Runtime.getRuntime();
                Process copy = runtime.exec( cmd );
                BufferedReader reader = new BufferedReader( new InputStreamReader( copy.getInputStream()) );
                String line = null;
                while( (line = reader.readLine()) != null ) {
                    System.out.println( line );
            catch (Exception e) {
                e.printStackTrace();
    cp.cmd is a simple dos copy command
    copy %1 %2
    */good luck!

  • How do I copy a file to a remote server using runtime exec - plz Help!

    Hi,
    I am trying to copy a file to a remote server using a runtime exec command as follows:
    Runtime.getRuntime().exec("scp "+getProperty(ListNewHandsetDetailsConstant.PROP_OUTPUT_PATH_JAR)+getProperty(ListNewHandsetDetailsConstant.PROP_OUTPUT_JAR_NAME)+".jar "+" "+getProperty(ListNewHandsetDetailsConstant.PROP_OUTPUT_PATH_TWO_USERNAME)+"@"+getProperty(ListNewHandsetDetailsConstant.PROP_OUTPUT_PATH_TWO_URL)+":"+getProperty(ListNewHandsetDetailsConstant.PROP_OUTPUT_PATH_TWO_JAR));
    Problem is this statement does not execute, as when I try it directly on command line, it requests for a password. Any suggestions on how I can get rid of that? I think I might have to configure my ssh_config file, but when I did some "Googling", I found the configuration settings of a ssh2_config file. I tried those (changing it to Host-based Authentication), but it didn't recognise them. Please help, this is so urgent!
    Regards,
    Simz

    Don't use Runtime.exec (or ProcessBuilder) for this. Check out JSch at JCraft (or some other Java SSH API.

  • BufferedReader blocks when using Runtime.exec()

    I'm executing an external process in Linux (RH 8.0) using the Runtime.exec() method and then setup two threads to read the standard and error output of the process. Most of the time this works great but every now and then the readers block and the process never exit. I even tried seting up a timer task that will close the BufferedReader after 20 seconds but that's not enough to unblock the reader - the external process is a dummy shell script which for now just outputs a single line. Does anybody have any idea why that would happen? Any help would be appreciated!
    Cheers,
    /Francis
    P.S. Here's a snippet of the code:
    public class ProcessRunner {
      private Process _process = null;
      private StreamGobbler _errorGobbler = null;
      private StreamGobbler _outputGobbler = null;
      private String[] _commandArgs;
      public ProcessRunner(String[] args) {
        _commandArgs = args;
      public int runCommand()
        throws IOException {
        int exitCode = -1;
        _process = Runtime.getRuntime().exec(_commandArgs[0]);
        // start up stream gobblers (inspired from javaworld)
        _outputGobbler = new StreamGobbler(new BufferedReader(new InputStreamReader(_process.getInputStream())));
        _outputGobbler.setDaemon(true);
        _errorGobbler = new StreamGobbler(new BufferedReader(new InputStreamReader(_process.getErrorStream())));
        _errorGobbler.setDaemon(true);
        _outputGobbler.start();
        _errorGobbler.start();
        try {
          exitCode = _process.waitFor(); // *** THIS NEVER RETURNS ***
          if (_outputGobbler != null) {
            _outputGobbler.join();
          if (_errorGobbler != null) {
            _errorGobbler.join();
        } catch (InterruptedException exc) {
          //ok, continue
        return exitCode;
      class StreamGobbler extends Thread {
        BufferedReader reader;
        StreamGobbler(BufferedReader reader) {
          this.reader = reader;
        public void run() {
          try {
            final int buffersize = 256;
            byte[] bytes = new byte[buffersize];
            String line = null;
            while((line = reader.readLine()) != null) {    // ***THIS ALSO BLOCKS ***
              baos.write(line.getBytes(), 0, line.length());
          } catch (IOException ioe) {
            // Do something here
          } finally {
            reader.close();
            reader = null;

    I use this type of thing in my code using JDK1.3.1. Only difference is I don't use set up the readers in threads. I suspect you have a thread deadlock, but I can't see why. Do you have to have the i/o stream readers in the thread?

  • Runtime.exec() for openning a browser

    hey guys!!
    I could open a browser using a runtime.exec(). once i have opened it can i use the process.getOuputStream() method to read what is there in the browser.
    How do i communicate with the browser?
    -karthek

    No, getOutputStream will read only what the program writes to standard output. Typically, GUI programs don't even use standard output. The only way you can communicate with processes started by Runtime.exec that I know of is with the Process class.

  • External commands in runtime exec

    Im trying to run commands from the Sleuthkit in a java GUI. These commands have no problem running from the konsole as all the paths etc. have been set up, but when I try to run them with the java runtime exec() they wont work. Similarly,i run standard linux commands in this gui aswell and they run without problem.
    Any ideas whats weong?
    Thanks.

    You didn't tell us exactly what you're doing.Its a forensic GUI that runs konsole based commands
    and displays the ouput in a JText areaThat tells us nothing useful. By "exactly what you're doing," I mean the Java code and the command it's exec()ing.
    >
    You didn't tell us what "doesn't work" means.The 'basic' linux commands work fine in the gui, its
    just the sleuthkit ones that wont run or return
    anything when executed using the runtime exec(). Even
    though running these commands in a konsole works
    fine. THis means all paths have been set.
    Any ideas on a different way to run them or should I
    include more than just the command used on the
    konsole?That still doesn't tell us what "doesn't work" means.
    My previous response still applies.

  • Runtime.exec() problem with Linux

    Hi All,
    I have a java program which I am using to launch java programs on all platforms.
    I am using the Runtime.exec() method to start the process in a separate JVM.
    But, I had a problem with the -classpath switch if the directories contained spaces. So I modified the java command which I am passing to the exec() method to something like:
    java -classpath \"./my dir with spaces\" com.harshal.MainThis I had to do because of the problem in windows. But, if I use double quotes in Linux (for the classpath switch in my exec() method), it won't work.
    Can anyone correct me so that I can use the Runtime.exec() method on all platforms to launch the java application even if the classpath directories contains spaces.
    Thank you very much.

    I was reading about the command line args on java's
    tutorial and I found a shocking news. Mac OS doesn't
    support command line args, That's news to me. Could you please elaborate ?
    More important is: I got it working. I figured out I had forgotten to try something before, or, to be more correct, I made an error when trying malcommc's envp suggestion: I used "classpath" as key, not "CLASSPATH", as it should have been.
    Ran a new test, got it working.
    Sample:
    Given a rootdir. Subdirectory "cp test" with a classfile (named "test") without package declaration. Running another class in another directory, using:
    String[] cmd = new String[]{
        "java", "test"
    String[] envp = new String[]{
        "CLASSPATH=rootdir:rootdir/cp test" // <-- without quotes.
    Runtime.getRuntime().exec(cmd, envp);It's been my wrong all the time. I didn't check hard enough. It simply had to work somehow (that's the kind of things that's easy to say afterwards :-)).

  • Runtime.exec ignores the working directory argument

    Hi Folks,
    I need to run a batch file in a particular directory, from a Java program.
    Here, I want to run "startMySQL.bat" from the ./bin directory.
    I used the following code to do so.
         String commandToExecute = "startMySQL.bat";
         File file = new File("bin");
    Process sqlPrcs = Runtime.getRuntime().exec(commandToExecute, null, file);     
    When I run these lines in a program, I get the following exception:
    java.io.IOException: CreateProcess: startMySQL.bat error=2
    at java.lang.Win32Process.create(Native Method)
    at java.lang.Win32Process.<init>(Unknown Source)
    at java.lang.Runtime.execInternal(Native Method)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at com.aperto.ems.packetmax.AuthenticationScreen.startDB(AuthenticationScreen.java:603)
    at com.aperto.ems.packetmax.AuthenticationScreen.validateUserAndReinitialize(AuthenticationScreen.java:479)
    at com.aperto.ems.packetmax.AuthenticationScreen.access$0(AuthenticationScreen.java:468)
    at com.aperto.ems.packetmax.AuthenticationScreen$OnOKButtonPress.actionPerformed(AuthenticationScreen.java:628)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener$ReleasedAction.actionPerformed(Unknown Source)
    at javax.swing.SwingUtilities.notifyAction(Unknown Source)
    at javax.swing.JComponent.processKeyBinding(Unknown Source)
    at javax.swing.JComponent.processKeyBindings(Unknown Source)
    at javax.swing.JComponent.processKeyEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
    at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
    at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    "error=2" in Windows mean "not able to find the file".
    Any clues on how I can run the batch file from a particular working directory?
    Thanks!

    Hi,
    I changed the code to print the user.dir output and the absolute path of the file. It looks like this:
    String commandToExecute = "startMySQL.bat";
    File fl = new File("bin");
    System.out.println(fl.getAbsolutePath());
    System.out.println(System.getProperty("user.dir"));
    Process sqlPrcs = Runtime.getRuntime().exec(commandToExecute, null, fl);
    Below is the output I get:
    C:\Program Files\Aperto\WaveCenter\Back-End_Server_2.0_build8\bin
    C:\Program Files\Aperto\WaveCenter\Back-End_Server_2.0_build8
    java.io.IOException: CreateProcess: startMySQL.bat error=2
    at java.lang.Win32Process.create(Native Method)
    at java.lang.Win32Process.<init>(Unknown Source)
    at java.lang.Runtime.execInternal(Native Method)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at com.aperto.ems.packetmax.AuthenticationScreen.startDB(AuthenticationScreen.java:604)
    at com.aperto.ems.packetmax.AuthenticationScreen.validateUserAndReinitialize(AuthenticationScreen.java:479)
    at com.aperto.ems.packetmax.AuthenticationScreen.access$0(AuthenticationScreen.java:468)
    at com.aperto.ems.packetmax.AuthenticationScreen$OnOKButtonPress.actionPerformed(AuthenticationScreen.java:629)
    I assure you, "startMySQL.bat" is there under "bin"
    Thanks,
    Sandeep

  • Runtime exec createProcess error

    Seeveral monts ago I get this piece of code on ee
    It gets hard disk numer via cmd.exe
    that works fine on xp but on 98 dont because there is no cmd.exe :)
    My coworker make little exe fajl (hdid.exe) which return id number and it works fine too on xp but on 98 that piece of code throws io exception
    Here is the function I use for it
    (lines under comments are lines that I have used before new hdid.exe )
    public String getKey(){
    try {
    System.out.println("check gk 0 ");
    String[] args = new String[] { KlijentPutanje.getRoot()+"/hdid.exe" };
    //String[] args = new String[] { "cmd.exe",  "/c",  "dir", "|",  "find", "/i",  "Serial Number is" };
    Process pro = Runtime.getRuntime().exec(args);
    InputStream error = pro.getErrorStream();
    InputStream output = pro.getInputStream();
    collector = new StringBuffer();
    ProcessStreamReader collectingReader = new ProcessStreamReader(output);
    Thread out = new Thread(collectingReader);
    out.start();
    out.join();
    String volumeNumber = collector.toString();
    //volumeNumber = volumeNumber.substring(volumeNumber.lastIndexOf(' '));
    volumeNumber = volumeNumber.trim();
    return volumeNumber;
    catch (Exception e){
    System.out.println("greska prilikom provere registracije - code 169");
    e.printStackTrace();
    return null;
    Here is the exception that this line throws
    greska prilikom provere registracije - code 169
    java.io.IOException: CreateProcess:
    /Grom/dev/pilot/1.0-radna/Ekspert/EkspertData/hdid.exe error=0
    at java.lang.Win32Process.create(Native Method)
    at java.lang.Win32Process.<init>(Unknown Source)
    at java.lang.Runtime.execInternal(Native Method)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at com.propisi.util.Reg.getKey(Reg.java:280)
    at com.propisi.util.Reg.execute(Reg.java:73)
    at com.propisi.SearchEngine.getSearchEngine(SearchEngine.java:130)
    at com.propisi.forme.AppletPretraga.loadReg(AppletPretraga.java:574)
    at com.propisi.forme.AppletPretraga.jbInit(AppletPretraga.java:235)
    at com.propisi.forme.AppletPretraga.init(AppletPretraga.java:167)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Can you help me 2 get hard disk number on windows98 too (with this hdid.exe pr maybe some other way)
    tia cubrovic

    That does look like a problem with you coworker's native code, not like a Java problem.

  • PHP website in runtime.exec

    He,
    I use:
    try {
    String url = "http://www.geflitst.net/pagina.php?pagina=Profiel&op=new_user";
    Runtime.getRuntime().exec("EXPLORER.EXE '"+url+"'");
    catch (Exception e) {
    System.out.println(e.toString());
    but i get te notice that path "new_user" doesn't excist. I think this is because te '=' in the PHP url. Does anyone know how to solve this?

    I see you've put quotes around the url. The exec method doesn't interprete the arguments in any way like a shell does; the quotes will be passed directly to the program that will be executed. Explorer will think you are trying to open a file called 'http ... ' but it can't find it and hence you get the error.
    What if you remove the quotes?
    You'll maybe find these helpful:
    http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html (Runtime.exec)
    http://www.javaworld.com/javaworld/javatips/jw-javatip66.html (Opening browsers)
    btw internet explorer is "iexplore.exe" but I suppose "explorer," the windows file explorer, does the trick too ...

  • Runtime.exec - hidding the ugly black dos window

    Hello,
    Could someone tlle me how to hide the dos command which is always opened when using Runtime.exec on a windows OS?
    I also know that there's already lots of questions already posted on this subject but I can't find them.. So links could help me....
    Loic

    Here's what came up when I searched the forum using "hide runtime":
    http://search.java.sun.com/Search/java?col=javafrm&qp=%2Bforum%3A31&qt=hide+runtime&x=10&y=10

  • Runtime.exec() with japanese arguments?

    I'm trying to invoke a C++ executable from java using the Runtime.exec() method. The C++ application accepts a filename as a command line argument & opens the file. This C++ app is unicode enabled i.e. it can accept UTF-16 (wide char) parameters. Howevere, when i invoke this application using Java's Runtime.exec() and specify a japanese file name as an argument, the japanese characters get converted to '?' characters by the time they are received in the C++ application. I'm running this application on Windows 2K, default i.e. English version.
    Looking at the source code of Runtime class, it seems that the exec()
    function makes use of a native helper function - execInternal(). Does
    this function support the entire unicode range?
    Is there any way we can avoid the conversion of japanese characters to '?' characters? Also, is there any other alternative for invoking an external application with Unicode (Say, japanese) arguments?
    Please reply ASAP.
    Thanks!

    I have a very similar problem. I am invoking cvs through Runtime.exec, and I am using it to add and check in files with chinese characters in the name, and it is failing with the following cvs error:
    Could not add resource file &#32435;&#20986; in directory C:\test to repository: cvs add: nothing known about ??
    The error message comes from cvs, and I have been able to track it down to the call string I pass to exec. It is correct when passed in but the command fails. For laughs I tried to call something simpler, like mkdir:
    err mkdir ?? is: The filename, directory name, or volume label syntax is incorrect.
    It seems pretty clear to me that although the callstring is correct, the call to exec fails, and the special characters are replaced with questionmarks, which seems to me to be an encoding issue.
    Did you get any solution to your problem, or does anyoen else have an answer for this?

  • Runtime.exec--problems writing to external file

    Hi. I went to http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html, and am still quite confused regarding the use of Runtime.exec, for my purposes. I want to decompile a CLASS file using javap, and then write that to a TXT file, for easier reading/input to JAVA. Now, I use the following code (a modification of what I got from http://www.mountainstorm.com/publications/javazine.html, as the "traps" article's sample code is WAY too confusing--they say the compiler had the output sent to text.txt, without even showing how in the source code they did that), but it hangs up. Modifications to the string array cause different results, such as showing the javap help menu, or saying that the class wasn't found, but I think the way I did the array here is right:
    import java.util.*;
    import java.io.*;
    public class Test {
            try {
             String ls_str;
                String[] cmd = {"C:\\j2sdk1.4.2_04\\bin\\javap", "-c", "-classpath", "H:\\Java\\metricTest", "metricTest > blah.txt", ""};
                Process ls_proc = Runtime.getRuntime().exec(cmd);
             // get its output (your input) stream
             DataInputStream ls_in = new DataInputStream(
                                              ls_proc.getInputStream());
             try {
              while ((ls_str = ls_in.readLine()) != null) {
                  System.out.println(ls_str);
             } catch (IOException e) {
              System.exit(0);
         } catch (IOException e1) {
             System.err.println(e1);
             System.exit(1);
         System.exit(0);
    }

    Also, jesie, I realize that's what I need...the only
    problem is, the name "test.txt" is nowhere to be found
    in the source code! lolLooks like I have to explain this, then.
    When you look at a Java program you'll notice that it always has a "main" method whose signature looks like this:public static void main(String[] args)When you execute that program from the command line, it takes whatever strings you put after the class name and passes them to the main program as that array of strings. For example if you run it likejava UselessProgram foo bar hippothen the "java" command takes the three strings "foo", "bar", and "hippo" and puts them into that args[] array before calling the "main" method.
    That means that inside the "main" method in this case, "args[0]" contains "foo", "args[1]" contains "bar", and "args[2]" contains "hippo".
    Now go back to the example and see how it lines up with that.

Maybe you are looking for

  • Applescript & Outlook; make new contact

    Hi all, I'm working on an Applescript that will allow me to create a new contact in Outlook. This is what I have thus far based on some old Entourage code and the Applescript Outlook dictionary:   tell application "Microsoft Outlook"   activate   mak

  • Forms and Reports: Automated Test tools - functionality AND performance

    All, I'm looking to get a few leads on an automated test tools that may be used to validate Oracle forms and reports (see my software configuration below). I'm looking for tools that can automate both functional tests and performance. By this I mean;

  • Bapi for customer wise material stock on date

    hi all, is there any bapi to find customer wise material stock as on date.as logic as MB5B

  • Why can't I create a new Apple ID??

    Hello, okay now I'm starting to feel really annoyed with this! I already posted a question, but I'm stuck again. First problem is I tried to use my Gmail account for iChat, but because I couldn't reach some of my contacts (@mac.com).. through some ad

  • What to do with an old, but functioning iBook?

    I've searched in this area for a similar question, but with no joy, so I'd like to pose it... because I really do like this computer and want to use it productively. I have an older iBook: 600mhz PowerPC G3 with 384mb RAM and a 18 gig HD (wow!). It i