TRAN Trung Thanh wrote:
Hi all,
I am newbie here.
Today, I tried to start apache tomcat 7.0.42 in Linux environment. Server path contains two consecutive spaces. When I run ./catalina.sh run, server cannot start and there is the following exception in console

./catalina.sh run
Using CATALINA_BASE:   /home/example/twoconsecutive  spaces
Using CATALINA_HOME:   /home/example/twoconsecutive  spaces
Using CATALINA_TMPDIR: /home/example/twoconsecutive  spaces/temp
Using JRE_HOME:        /home/example/java/jdk1.6
Using CLASSPATH: /home/example/twoconsecutive spaces/bin/bootstrap.jar:/home/example/twoconsecutive spaces/bin/tomcat-juli.jar Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/catalina/startup/Bootstrap Caused by: java.lang.ClassNotFoundException: org.apache.catalina.startup.Bootstrap
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.apache.catalina.startup.Bootstrap. Program will exit.

Tomcat server can start if  server path does not contain consecutive space.

Do anyone face to the same issue with me in this case? Have you any suggestion to fix this issue?

Yes : don't do that (using spaces in paths).

  It is quite important for my deployment.


That's a pity.
Spaces in paths (and filenames) are evil, and should never have been allowed in the first place. A special place in hell is reserved for the genius who first allowed this stupid thing in an OS. I wish I had 0.1 cent for every programming hour lost because of this.

Technically, you can certainly find the correct way to quote them in any particular place and environment. But usually, this is merely moving the problem to some other place further down the line, where it is even less visible and harder to find the bugs. I suppose the same could be said about any non-visible character, but spaces (along with TAB) are specially evil because in most environments, they are considered either as valid separators between words/tokens or as "non-significant".

My serious recommendation would be to think really hard about a way to nip this in the bud, and avoid allowing them and using them in the first place. Think that if you allow them somewhere, and even if you quote them correctly there, you will have to continue quoting them (appropriately) everywhere else that you are using the corresponding strings. It is almost guaranteed that this will bite you somewhere.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to