Web アプリケーションで使用するソース コードをコンパイルしようとしています。Ubuntu の機能は Windows の機能とは異なり、classpath
永続的に設定するのはよくないので、フラグを一時的に設定することにしました。ターミナルでの私のコマンドは次のとおりです。
littlejavachild@ubuntu:~/LittleJavaChild/ServletProjects/beerV1$ javac -cp "/usr/share/tomcat7/servlet-api.jar" -d classes src/com/example/*.java
私が達成しようとしていることは次のとおりです。
.java
パッケージ内のすべてのファイルをコンパイルするcom.example
.class
ファイルを適切なディレクトリに直接送信するWEB-INF
ますを設定してもclasspath
、エラーが発生します:
src/com/example/ListenerTester.java:3: error: package javax.servlet does not exist
import javax.servlet.*;
^
src/com/example/ListenerTester.java:4: error: package javax.servlet.http does not exist
import javax.servlet.http.*;
^
src/com/example/ListenerTester.java:7: error: cannot find symbol
public class ListenerTester extends HttpServlet{
^
symbol: class HttpServlet
src/com/example/ListenerTester.java:8: error: cannot find symbol
public void doGet(HttpServletRequest request,
^
symbol: class HttpServletRequest
location: class ListenerTester
src/com/example/ListenerTester.java:9: error: cannot find symbol
HttpServletResponse response) throws IOException, ServletException {
^
symbol: class HttpServletResponse
location: class ListenerTester
src/com/example/ListenerTester.java:9: error: cannot find symbol
HttpServletResponse response) throws IOException, ServletException {
^
symbol: class ServletException
location: class ListenerTester
src/com/example/MyServletContextListener.java:2: error: package javax.servlet does not exist
import javax.servlet.*;
^
src/com/example/MyServletContextListener.java:4: error: cannot find symbol
public class MyServletContextListener implements ServletContextListener{
^
symbol: class ServletContextListener
src/com/example/MyServletContextListener.java:5: error: cannot find symbol
public void contextInitialized(ServletContextEvent event){
^
symbol: class ServletContextEvent
location: class MyServletContextListener
src/com/example/MyServletContextListener.java:12: error: cannot find symbol
public void contextDestroyed(ServletContextEvent event){
^
symbol: class ServletContextEvent
location: class MyServletContextListener
src/com/example/ListenerTester.java:14: error: cannot find symbol
Dog dog = (Dog) getServletContext().getAttribute("dog");
^
symbol: method getServletContext()
location: class ListenerTester
src/com/example/MyServletContextListener.java:6: error: cannot find symbol
ServletContext sc = event.getServletContext();
^
symbol: class ServletContext
location: class MyServletContextListener
これらのエラーは、クラスパスが正しく設定されていない場合に発生することを知っています。これで私を助けてください。何が問題なのか、どのように修正すればよいのか、今後それを回避する方法を教えてください。
-verbose で更新
[クラスファイルの検索パス: /usr/lib/jvm/java-7-openjdk-i386/jre/lib/resources.jar,/usr/lib/jvm/java-7-openjdk-i386/jre/lib/rt .jar、/usr/lib/jvm/java-7-openjdk-i386/jre/lib/sunrsasign.jar、/usr/lib/jvm/java-7-openjdk-i386/jre/lib/jsse.jar、/ usr/lib/jvm/java-7-openjdk-i386/jre/lib/jce.jar、/usr/lib/jvm/java-7-openjdk-i386/jre/lib/charsets.jar、/usr/lib/ jvm/java-7-openjdk-i386/jre/lib/netx.jar、/usr/lib/jvm/java-7-openjdk-i386/jre/lib/plugin.jar、/usr/lib/jvm/java- 7-openjdk-i386/jre/lib/rhino.jar、/usr/lib/jvm/java-7-openjdk-i386/jre/lib/jfr.jar、/usr/lib/jvm/java-7-openjdk- i386/jre/classes、/usr/lib/jvm/java-7-openjdk-i386/jre/lib/ext/localedata.jar、/usr/lib/jvm/java-7-openjdk-i386/jre/lib/ ext/sunjce_provider.jar、/usr/lib/jvm/java-7-openjdk-i386/jre/lib/ext/dnsns.jar、/usr/lib/jvm/java-7-openjdk-i386/jre/lib/ ext/java-atk-wrapper.jar、/usr/lib/jvm/java-7-openjdk-i386/jre/lib/ext/pulse-java.jar、/usr/lib/jvm/java-7-openjdk-i386/jre/lib/ext/sunpkcs11. jar,/usr/lib/jvm/java-7-openjdk-i386/jre/lib/ext/zipfs.jar,.,/usr/share/tomcat7/servlet-api.jar]