In object Oriented Programming (OOP) an object factor is an instance of an object which creates an instance of another object.
In simple terms, if an object returns a new object with a method call it’s an object factory.
When publishing a Java based application it is perfectly possible to release a runnable JAR file. However it might look more professional and user friendly to package the application in an OS native format. By installing the developer tools in OSX you have access yo a JAR Bundler tool which will create .app files. For Windows based machines Launch4J is an excellent free solution.