質問: パッケージjavax.servletは存在しませんと表示されます。 どのようにすればいいのでしょうか? 回答お願いします 環境変数、エラー内容は下記のとおりです。 CLASSPATH C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib\servlet-api.jar;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip;C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib JAVA-HOME C:\Program Files\Java\jdk1.8.0_111 path %JAVA_HOME%\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;c:\Program Files (x86)\Common Files\Ulead Systems\MPEG;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\12.0\DLLShared\;C:\Program Files (x86)\Roxio 2010\OEM\AudioCore\;C:\Program Files (x86)\Common Files\NEC\SmartVision;C:\Program Files\Common Files\NEC\SmartVision;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Skype\Phone\ エラー内容 C:\Program Files\Apache Software Foundation\Tomcat 9.0\temp>javac Hello.java Hello.java:2: エラー: パッケージjavax.servletは存在しません import javax.servlet.*; ^ Hello.java:3: エラー: パッケージjavax.servlet.httpは存在しません import javax.servlet.http.*; ^ Hello.java:5: エラー: シンボルを見つけられません public class Hello extends HttpServlet { ^ シンボル: クラス HttpServlet Hello.java:7: エラー: シンボルを見つけられません public void doGet(HttpServletRequest request, HttpServletResponse response) ^ シンボル: クラス HttpServletRequest 場所: クラス Hello Hello.java:7: エラー: シンボルを見つけられません public void doGet(HttpServletRequest request, HttpServletResponse response) ^ シンボル: クラス HttpServletResponse 場所: クラス Hello Hello.java:8: エラー: シンボルを見つけられません throws IOException, ServletException{ ^ シンボル: クラス ServletException 場所: クラス Hello エラー6個
回答: なんかいろいろツッコミどころがあるのですが、 まずTomcat 9.0ってまだ評価版じゃないんですか?少なくとも初心者が使う代物ではないでしょう。8.0ないし8.5を選ぶべきのような。 > > C:\Program Files\Apache Software Foundation\Tomcat 9.0\temp>javac Hello.java > > > なぜそんなところで作業しているのですか?WindowsではProgram Filesの下は一般ユーザーが自由にアクセスできないような権限になっています。Tomcatをインストーラーで導入した場合も同様のはずですが、アクセス権を強引に変えて作業しているのでしょうか? > > C:\Program Files\Java\jdk1.8.0_111 > > > なんか中途半端に古いですね。今日現在の最新はjdk1.8.0_144ですが、書籍か何かに付属していたものを入れたのでしょうか? > > CLASSPATH > > > 本質的な原因はクラスパス絡みの設定ミスしか考えられません。以前の質問でも何か理解がおぼつかないところがあったようですが。まだ何か理解不足があるのではないでしょうか? まずとりあえず確認のために、ソースをユーザーが作業用に使って問題のない場所、例えば"C:\Users\<ユーザー名>\work"みたいなフォルダーを作ってその中に移し、 ``` C:\Users\<ユーザー名>\work>javac -cp "C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib\servlet-api.jar" Hello.java ``` のように-cpオプションでクラスパスを設定しても通らないでしょうか?