001    package org.util.env;
002    
003    import java.util.*;
004    import java.io.*;
005    import java.net.*;
006    import java.awt.*;
007    import java.awt.event.*;
008    import javax.swing.*;
009    import javax.swing.event.*;
010    
011    public class LaunchInformation {
012        
013        private static boolean initialized_;
014        private static boolean jar_mode_;
015        private static URL jar_base_url_;
016        private static URL jar_parent_url_;
017        
018    
019        public static void init() {
020            if(initialized_) return ;
021    
022            URL launch_information_class_url = ClassLoader.getSystemClassLoader().getResource("org/util/env/LaunchInformation.class");
023            jar_mode_ = (launch_information_class_url.getProtocol().toLowerCase().equals("jar"));
024    
025            if(jar_mode_) {
026                String licu_text = launch_information_class_url.toString();
027                try{
028                    jar_base_url_ = new URL(licu_text.substring(0, licu_text.indexOf("!")+2));
029                    jar_parent_url_ = new URL(licu_text.substring(4, licu_text.indexOf("!")));
030                }catch(Exception e){
031                    e.printStackTrace();
032                }
033                System.out.println(jar_base_url_);
034            }
035            initialized_ = true;
036        }
037    
038        public static boolean isJarMode() {
039            init();
040            return jar_mode_;
041        }
042        public static URL getJarParentURL() {
043            init();
044            return jar_parent_url_;
045        }
046        public static URL getJarBaseURL() {
047            init();
048            return jar_base_url_;
049        }
050        public static URL createJarURL(String path) throws Exception {
051            init();
052            return new URL(jar_base_url_, path);
053        }
054        public static URL createJarParentURL(String path) throws Exception {
055            init();
056            return new URL(jar_parent_url_, path);
057        }
058        
059    }