Menu

#188 MacOS X launcher

open
nobody
5
2003-05-05
2003-05-05
brandon
No

A double-clickable launcher for the SJ GUI. This would
be very easy to create with the MRJAppBuilder as
SourceJammer runs fine in OS X.

Discussion

  • Robert MacGrogan

    Logged In: YES
    user_id=258727

    Hi, Brandon.

    There is a Windows .exe file and there are script files for
    Windows and Linux/Unix. What sort of file would this be? Is
    it something you could make and contribute to the project?

     
  • brandon

    brandon - 2003-05-06

    Logged In: YES
    user_id=222815

    Applications in MacOS are stored in what are called Bundles.
    A bundle is a directory with a specific structure and some
    files that store things about the application such as the
    icon and how to run it. When the user double-clicks a
    bundle, it runs like an executable and the user doesn't have
    to know that it is anything more than a single file.

    Apple has a nice little tool to make bundles for java
    programs. I finally got SourceJammer reorganized to work as
    a bundle yesterday except for one error.

    I get a dialog window stating, "Sourcejammer is having
    trouble with the display text file. Either the file cannot
    be found or it is improperly formatted. Please check the
    file and restart SourceJammer when the problem is resolved."
    What file is it referring to? After I get this error fixed,
    I think I'll be done and ready to package up the bundle for
    you. For future releases, you can just replace the jars in
    the bundle with updated versions yourself.

     
  • Robert MacGrogan

    Logged In: YES
    user_id=258727

    > What file is it referring to?

    english.props in the conf directory.

    Please not that SJ needs to be able to read and write to its
    conf directory. This may or may not be possible if this
    directory is inside of a bundle. The conf directory is set
    as a start up paramater for StartGUI (the startup class for
    the SJ GUI).

     
  • brandon

    brandon - 2003-05-06

    Logged In: YES
    user_id=222815

    I'm working on this issue. I had the parameter set 'right',
    but i forgot to make sure the current directory was set to
    where I thought it was when a bundle runs :) So, I've got it
    pointing to the right conf dir, but now, the program crashes
    or freezes during the splash screen. Im still trying to find
    an error message. I don't know exactly where macOS stores
    the error. I'll be checking into that now

    Bundles are directories ending in .app
    If you are interested, here is what the Bundle looks like:

    ../SourceJammer.app #our bundle and current directory
    ./Contents/MacOS #where the executable application stub is
    ./Contents/Resources/conf #conf dir
    ./Contents/Resources/docs
    ./Contents/Resources/Java #directory where the jars are stored
    ./Contents/Resources #where everything related to the
    program resides
    ./Contents/Resources/MRJApp.properties #Holds all of the
    environmental variables and java properties for runtime

    Those are the important bits. To make this work, the
    classpath in MRJApp.properties contains all of the
    Contents/Resources/Java/jar files
    And the parameter is changed to Contents/Resources/conf

    Any questions or answers?

     
  • Robert MacGrogan

    Logged In: YES
    user_id=258727

    No answers, really. In all likelihood, an exception is being
    thrown somewhere in the startup methods, which run after the
    splash screen is displayed. This could be just about
    anything. If you could only see the System.out, you'd see
    the exception message.

    Could be the location of english.props, filehist.props or
    some other conf file. Could also be a classpath error.

    --Rob

     
  • brandon

    brandon - 2003-05-06

    Logged In: YES
    user_id=222815

    I found the console where errors go. I don't know why this
    is happening.
    Here is the log:

    ac - /Users/brandon/Desktop/SourceJammer.app/conf.xml
    ac -
    /Users/brandon/Desktop/SourceJammer.app/SourceJammer.app/Contents/Resources/conf/conf.xml
    cc -
    /Users/brandon/Desktop/SourceJammer.app/SourceJammer.app/Contents/Resources/conf/clientconf.xml
    java.io.FileNotFoundException: english.props (No such file
    or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:59)
    at java.io.FileInputStream.<init>(FileInputStream.java:90)
    at
    org.sourcejammer.client.DisplayTextLibrary.<init>(Unknown
    Source)
    at
    org.sourcejammer.client.DisplayTextLibrary.initializeInstance(Unknown
    Source)
    at org.sourcejammer.client.gui.SJGuiClient.main(Unknown Source)
    at org.sourcejammer.client.gui.StartGUI.main(Unknown Source)
    at java.lang.reflect.Method.invoke(Native Method)
    at apple.launcher.LaunchRunner.run(LaunchRunner.java:88)
    at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:50)
    at
    apple.launcher.JavaApplicationLauncher.main(JavaApplicationLauncher.java:61)
    ac -
    /Users/brandon/Desktop/SourceJammer.app/Contents/Resources/conf.xml
    ac -
    /Users/brandon/Desktop/SourceJammer.app/Contents/Resources/./conf/conf.xml
    cc -
    /Users/brandon/Desktop/SourceJammer.app/Contents/Resources/./conf/clientconf.xml
    java.lang.NoClassDefFoundError:
    java/awt/event/WindowFocusListener
    at org.sourcejammer.client.gui.SJGuiClient.main(Unknown Source)
    at org.sourcejammer.client.gui.StartGUI.main(Unknown Source)
    at java.lang.reflect.Method.invoke(Native Method)
    at apple.launcher.LaunchRunner.run(LaunchRunner.java:88)
    at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:50)
    at
    apple.launcher.JavaApplicationLauncher.main(JavaApplicationLauncher.java:61)

     
  • Robert MacGrogan

    Logged In: YES
    user_id=258727

    SJ requires Java 1.4.0 or later. WindowFocusListener may not
    be available in the version of Java you are trying to use.
    And as to why it can't find english.props. I could only guess.

     
  • brandon

    brandon - 2003-05-07

    Logged In: YES
    user_id=222815

    This is very odd then. when using the sj_gui script,
    SourceJammer runs fine and macOS X has java 1.4. I'll have
    to look at the source code. There might be some property I
    need to set

     

Log in to post a comment.