gpt4 book ai didi

java - 使用 javac -d 标志编译时找不到包错误?

转载 作者:行者123 更新时间:2023-11-30 08:42:24 25 4
gpt4 key购买 nike

我正在尝试编译一个名为 BeerSelect.java 的 Servlet 类。它从一个包中导入一个模型类 BeerExpert.java,问题是在编译时出现未找到程序包错误

我的目录结构如下

diectory structure

我首先编译我的 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 

现在工作:)

关于java - 使用 javac -d 标志编译时找不到包错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34576865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com