0

我是 Ubuntu 12.10 的新手,并从 Windows 迁移到它。

在 Windows 中,我已将环境变量配置为包含servlet-api.jarCLASSPATH变量中,因此我不必-cp <path to servlet-api.jar>每次编译时都键入。

对于普通的Java程序,我已经设置了JAVA_HOMEusing:
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我不知道为什么。帮我解决!

如果在范围内,请告诉我 Windows 中 tomcat 的目录结构与 Ubuntu 中的目录结构有何不同。

杂项

我曾经sudo apt-get install tomcat7得到Tomcat 7。

4

2 回答 2

1

您没有说您使用的是 Ubuntu Tomcat 包还是独立的 Tomcat 安装。

对于独立的 Tomcat,您将使用其bin目录中的脚本启动和停止它:startup.shshutdown.sh. 在这种情况下,Tomcat 将使用调用时设置的环境变量值。执行此操作时,您可以在运行这些命令之前设置环境变量。

Ubuntu 作为软件包分发的 Tomcat 6 或 Tomcat 7 也是如此。这些巧妙地将$CATALINA_HOME目录(应该是 Tomcat 7 发行版的位置)与$CATALINA_BASE目录(应该是特定 Tomcat 实例的所有更改和添加的位置)分开。对于tomcat7包,第一个目录是/usr/share/tomcat7,而第二个目录是/var/lib/tomcat7. 你可以在里面找到,startup.sh当然你也可以使用它们。shutdown.sh/usr/share/tomcat7/bin

但是,如果您使用 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。这种方法总是有效的。

最后,Tomcat 在指定启动时加载的其他类或 JAR 时提供了比仅使用更好的控制$CLASSPATH:在其conf/catalina.properties配置文件中,您可以将common.loader,server.loader和设置shared.loader为要加载的目录和/或 JAR 文件的列表除了标准的。

于 2014-09-30T15:46:02.020 回答
0

这意味着您应该以超级用户的身份执行此操作 - 在 Windows 中转换为管理员,因此您应该尝试类似的操作sudo service tomcat7 start

尝试export CLASSPATH=/usr/share/tomcat7/lib/servlet-api.jar:/usr/share/tomcat7/lib/jsp-api.jar- 这将取决于您的 Tomcat 安装位置。

你可以 在这里获得更多

干杯

于 2013-02-24T19:36:39.357 回答