我是 Ubuntu 12.10 的新手,从 Windows 迁移到它。
在 Windows 中,我已将环境变量配置为包含 servlet-api.jar
在CLASSPATH
变量,所以我不必输入 -cp <path to servlet-api.jar>
每次我编译。
对于普通的 Java 程序,我设置了 JAVA_HOME
使用:
export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-i386" >> ~/.bashrc
解决了这个问题,我需要设置 CLASSPATH
但不知道如何。
请帮助解决这个问题!
我还在一些论坛上读到我应该更改 CLASSPATH
每次我编译时手动,因为更改 CLASSPATH
可能会扰乱其他应用程序。
接下来,我尝试了这个命令来启动Tomcat
service tomcat7 start
但我得到一个错误:
You need root privileges to run this script
我不知道为什么。帮我解决!
如果在范围内,请告诉我tomcat在Windows中的目录结构与Ubuntu中有何不同。
杂项
我用了sudo apt-get install tomcat7
获取 Tomcat 7。
最佳答案
您没有说明您使用的是 Ubuntu Tomcat 软件包还是独立的 Tomcat 安装。
对于独立的 Tomcat,您将使用 bin
目录中的脚本启动和停止它:startup.sh
和 shutdown.sh
。在这种情况下,Tomcat 将使用在调用时设置的环境变量值。
执行此操作时,您可以在运行这些命令之前设置环境变量。
对于 Ubuntu 作为包分发的 Tomcat 6 或 Tomcat 7 也是如此。
它们将 $CATALINA_HOME
目录(Tomcat 7 发行版应该位于的位置)与 $CATALINA_BASE
目录(特定 Tomcat 实例的所有更改和添加的位置)巧妙地分开应该是。对于tomcat7
包,第一个目录是/usr/share/tomcat7
,而第二个目录是/var/lib/tomcat7
。
你可以在/usr/share/tomcat7/bin
中找到startup.sh
和shutdown.sh
,当然你可以使用它们。
但是,如果您使用 Ubuntu 提供的 Tomcat,您可能希望像运行任何其他标准系统服务一样运行它,并且软件包支持这一点:例如对于tomcat7
,你可以直接使用
sudo service tomcat7 status
sudo service tomcat7 start
sudo service tomcat7 stop
sudo service tomcat7 restart
就像您可以为任何系统服务一样,它使用与其他系统服务相同的机制:
- shell脚本
/etc/init.d/tomcat7
用于启动和停止Tomcat 7 /etc/default/tomcat7
是它的配置文件,允许设置一些参数
使用此方法,您不能通过在 shell 或 /etc/default/tomcat7
中设置它们来指定 Tomcat 使用的额外环境变量;它们不会传递给 Tomcat。
但是,还有第二种设置环境变量的方法:如果您在 shell 脚本 /var/lib/tomcat7/bin/setenv.sh
中设置它们(或者,如果必须,/usr/share/tomcat7/bin/setenv.sh
),它们将被拾取并传递给 Tomcat。这种方法总是有效的。
最后,在指定要在启动时加载的其他类或 JAR 时,Tomcat 提供了比仅使用 $CLASSPATH
更好的控制:在其 conf/catalina.properties
中> 配置文件,您可以将 common.loader
、server.loader
和 shared.loader
设置为目录和/或 JAR 文件列表在标准的之外加载。
关于java - 在 Ubuntu 12.10 上使用 Tomcat 7 --- 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15055707/