public static void main(String[] args) throws ClassNotFoundException,
			FileNotFoundException, IOException, InstantiationException,
			IllegalAccessException {

		
		resource = ResourceBundle.getBundle("data_en_EN");
			
		if (!isArgsValid(args))
			return;

		boolean seeHints = false; 

		JarLoader jarClassLoader = new JarLoader(args[1], "", seeHints);

		Set<String> setClassNames = jarClassLoader.getCachedClasses();
		Class<?> currClass = null;
		Class<?> neededInterface = null;
		boolean isNeededInterface = false;
		for (String className : setClassNames) {
			currClass = jarClassLoader.loadClass(className);
			Class[] interfaces = currClass.getInterfaces();
			for (Class cInterface : interfaces) {
				if ("CommonInterfaces.StringConvertable".equals(cInterface.getName())) {
					isNeededInterface = true;
					neededInterface = cInterface;
					break;
				}
			} // for
			if (isNeededInterface)
				break;
		} // for

		if (!isNeededInterface) {
			p(resource.getString("FileNotContainInterface").replace("<file>", args[1]).replace("<interface>", "CommonInterfaces.StringConvertable"));
			return;
		}

		Object loadedModule = currClass.newInstance();
		StringConvertable loadedModuleInterface = (StringConvertable) loadedModule;

		FileLoader loader = new FileLoader(args[0]);
		p(resource.getString("PrintFile").replace("<file>", args[0]));
		while (loader.hasNext()) {
			String str = loader.next();
			p(resource.getString("ConvertString").replace("<Str1>", str).replace("<Str2>", loadedModuleInterface.convert(str)));
		}
		loader.close();
	} // main