使用 javac -d 标志编译时找不到包错误?
Package not found error when compiling with javac -d flag?
我正在尝试编译一个名为 BeerSelect.java 的 Servlet Class。
它从包中导入模型 Class BeerExpert.java ,
问题是在编译时我得到一个 package not found error .
我的目录结构如下
我首先编译我的 BeerExpert.java 如下
去了 beerV1
和
javac -d classes /src/com/example/model/BeerExpert.java
并且 .class 文件自动创建在正确的路径中,如上所示
现在我再次从 beerV1
目录尝试将 BeerSelect.java 编译为 ...
javac -classpath ~/tomcat/lib/servlet-api.jar -d classes/ src/com/example/web/BeerSelect.java
它抛出这个错误
src/com/example/web/BeerSelect.java:2: error: package com.example.model does not exist
import com.example.model.*;
^
两个java个文件
BeerSelect.java
package com.example.web;
import com.example.model.*;
import javax.servlet.*;
import java.io.*;
import java.util.*;
import javax.servlet.http.*;
public class BeerSelect extends HttpServlet
{
public void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException,ServletException
{
response.setContentType("text/html");
PrintWriter out=response.getWriter();
String beerColor=request.getParameter("color");
BeerExpert expert=new BeerExpert();
ArrayList brands=expert.getBrands(beerColor);
for(String brand:brands)
{
out.println("Try "+brand+"<br>");
}
}//post ends
}//class ends
BeerExpert.java
package com.example.model;
import java.util.*;
public class BeerExpert {
public ArrayList<String> getBrands(String color)
{
ArrayList<String> brands=new ArrayList<>();
if(color.equals("Dark"))
{
brands.add("Dark fantasy");
brands.add("Dark Warrior");
}
else//light
{
brands.add("Light as a feather");
brands.add("light as a macbook");
}
return brands;
}
}
为什么看不到包裹?
请帮助:(
糟糕,这是一个愚蠢的错误
javac 必须知道在哪里寻找包
所以
将位置添加到类路径就可以了
我用过
javac -classpath ~/tomcat/lib/servlet-api.jar:**classes** -d classes/ src/com/example/web/BeerSelect.java
现在有效:)
我正在尝试编译一个名为 BeerSelect.java 的 Servlet Class。 它从包中导入模型 Class BeerExpert.java , 问题是在编译时我得到一个 package not found error .
我的目录结构如下
我首先编译我的 BeerExpert.java 如下
去了 beerV1
和
javac -d classes /src/com/example/model/BeerExpert.java
并且 .class 文件自动创建在正确的路径中,如上所示
现在我再次从 beerV1
目录尝试将 BeerSelect.java 编译为 ...
javac -classpath ~/tomcat/lib/servlet-api.jar -d classes/ src/com/example/web/BeerSelect.java
它抛出这个错误
src/com/example/web/BeerSelect.java:2: error: package com.example.model does not exist
import com.example.model.*;
^
两个java个文件
BeerSelect.java
package com.example.web;
import com.example.model.*;
import javax.servlet.*;
import java.io.*;
import java.util.*;
import javax.servlet.http.*;
public class BeerSelect extends HttpServlet
{
public void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException,ServletException
{
response.setContentType("text/html");
PrintWriter out=response.getWriter();
String beerColor=request.getParameter("color");
BeerExpert expert=new BeerExpert();
ArrayList brands=expert.getBrands(beerColor);
for(String brand:brands)
{
out.println("Try "+brand+"<br>");
}
}//post ends
}//class ends
BeerExpert.java
package com.example.model;
import java.util.*;
public class BeerExpert {
public ArrayList<String> getBrands(String color)
{
ArrayList<String> brands=new ArrayList<>();
if(color.equals("Dark"))
{
brands.add("Dark fantasy");
brands.add("Dark Warrior");
}
else//light
{
brands.add("Light as a feather");
brands.add("light as a macbook");
}
return brands;
}
}
为什么看不到包裹? 请帮助:(
糟糕,这是一个愚蠢的错误
javac 必须知道在哪里寻找包
所以 将位置添加到类路径就可以了
我用过
javac -classpath ~/tomcat/lib/servlet-api.jar:**classes** -d classes/ src/com/example/web/BeerSelect.java
现在有效:)