- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的项目目录如下所示:
predictions
--> WEB-INF
--> classes
--> predictions
--> Predictions.java,
Prediction.java,
Prediction.class
预测.java
package predictions;
import java.io.Serializable;
public class Prediction implements Serializable {
private static final long serialVersionUID = 1L;
private String who;
private String what;
public Prediction(){}
public String getWho() { return who; }
public void setWho( String who ) { this.who = who; }
public String getWhat() { return what; }
public void setWhat( String what ) { this.what = what; }
}
预测.java
package predictions;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.beans.XMLEncoder; // simple and effective
import javax.servlet.ServletContext;
public class Predictions {
private int n = 32;
private Prediction[ ] predictions;
private ServletContext sctx;
public Predictions() { }
// The ServletContext is required to read the data from
// a text file packaged inside the WAR file
public void setServletContext(ServletContext sctx) {
this.sctx = sctx;
}
public ServletContext getServletContext() { return this.sctx; }
// getPredictions returns an XML representation of
// the Predictions array
public void setPredictions(String ps) { } // no-op
public String getPredictions() {
// Has the ServletContext been set?
if (getServletContext() == null)
return null;
// Have the data been read already?
if (predictions == null)
populate();
// Convert the Predictions array into an XML document
return toXML();
}
//** utilities
private void populate() {
String filename = "/WEB-INF/data/predictions.db";
InputStream in = sctx.getResourceAsStream(filename);
// Read the data into the array of Predictions.
if (in != null) {
try {
InputStreamReader isr = new InputStreamReader(in);
BufferedReader reader = new BufferedReader(isr);
predictions = new Prediction[n];
int i = 0;
String record = null;
while ((record = reader.readLine()) != null) {
String[] parts = record.split("!");
Prediction p = new Prediction();
p.setWho(parts[0]);
p.setWhat(parts[1]);
predictions[i++] = p;
}
}
catch (IOException e) { }
}
}
private String toXML() {
String xml = null;
try {
ByteArrayOutputStream out = new ByteArrayOutputStream();
XMLEncoder encoder = new XMLEncoder(out);
encoder.writeObject(predictions); // serialize to XML
encoder.close();
xml = out.toString(); // stringify
}
catch(Exception e) { }
return xml;
}
}
我编译了 Prediction.java --> Predictions.class。但 Predictions.java 抛出错误:
symbol: class Prediction
location: class Predictions
Predictions.java:52: error: cannot find symbol
predictions = new Prediction[n];
^
symbol: class Prediction
location: class Predictions
Predictions.java:57: error: cannot find symbol
Prediction p = new Prediction();
我使用了apache-tomcat中包含的servlet-api.jar,如果我不使用,那么javax.servlet也会出现同样的错误
javac -classpath C:\apache-tomcat-9.0.0.M8\webapps\predictions\WEB-INF\classes\predictions;C:\apache-tomcat-9.0.0.M8\lib\servlet-api.jar Predictions.java
我做错了什么?
最佳答案
从 classes
文件夹 javac Predictions\*.java
编译您的类,并在类路径中设置 servlet-api.jar。
设置正确的类路径后也可以一一编译它们:
javac predictions\Prediction.java
javac predictions\Predictions.java
希望对你有帮助
关于Javac “cannot find symbol” 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38929142/
我的问题是关于基本的java命令之一“javac”。我的桌面上有一个“.java”文件。我已经安装了 JDK 7 并将路径变量添加到环境变量中。这是“环境变量”的屏幕截图。 http://s13.po
我制作了我的 gitrepository 并提交了它。 插入了一个 java 文件并想编译它,但它给了我这个: Bernard@BERNARD-PC /c/users/bernard/desktop/
运行Maven时,得到以下输出: [WARNING] Unable to autodetect 'javac' path, using 'javac' from the environment. 我该
我有一个导入一些 servlet 库的类。当我从命令行编译它时它很好。 当我使用 ant compile 任务编译它时,它给出了在其路径中找不到 servlet 库的错误。 这是已知/常见的情况吗?
我试图在 maven-compiler-plugin 中指定另一个版本的 JDK .当-target和 -source参数设置为1.5,一切正常。但是当我尝试使用 1.6 JDK 时,maven 会报
我们的软件之前附带 OpenJDK JRE,但现在我们将附带 Oracle JRE。 之前我们使用 OpenJDK javac 编译器进行编译。我认为现在我们应该使用 Oracle javac 编译器
在大多数现代 IDE 中,您可以设置一个参数来确保 javac 获得足够的堆内存来进行编译。由于不值得在这里讨论的原因,我们暂时与 JBuilder 2005/2006 联系在一起,而且源代码的数量似
我在桌面上的 Notepad++ 中保存了一个名为“first.java”的文件。当我运行 cmd 命令“javac first.java”时,它给了我这个错误。 javac: file not fo
更新: See resolution here. 感谢大家的帮助! 我在尝试使用 Ant 编译项目时遇到错误,它声称“[javac] javac:无效目标版本:7”并导致构建失败。 我在 Mac OS
当我尝试在我的 gwt-maven Projekt 上进行 maven-install 时,我得到了这个错误: [ERROR] Failed to execute goal org.apache.ma
使用 maven 编译时出现编译错误。 [ERROR] COMPILATION ERROR : [INFO] ---------------------------------------------
我正在查看一些内部 javac sun 编译器 API 源代码,并在 Types 类中发现了这一点: public Boolean visitTypeVar(TypeVar var1, Type va
我正在尝试运行 java 应用程序,但出现以下错误, Unable to find a javac compiler; com.sun.tools.javac.Main is not on the c
我有这个类,它是我在从 Java 6 移植到 Java 8 的项目中找到的一些代码的简化: public class Unification { final class Box {}
首先,我要感谢你,并明确地说,我已经在这个问题上苦苦思索了好几天,并在其他类似线程中寻找解决方案,但没有成功。 我们的应用程序负责生成 java 类,其中一些可能在类名(因此文件名)中包含特殊字符,例
以下代码创建了一个Collector,它产生了一个UnmodifiableSortedSet: package com.stackoverflow; import java.util.Collecti
当我用 Maven 编译我的类时遇到问题。堆栈跟踪如下所示: [ERROR] Failure executing javac, but could not parse the error: [ERRO
这个问题在这里已经有了答案: Why Java compiler as distributed as executable and not as JVM bytecode? (1 个回答) 关闭 7
我有一些用 javac 1.8.0_92 编译的代码: public final class Either { // ... private final L l; privat
这个问题在这里已经有了答案: Lombok's access to jdk.compiler's internal packages incompatible with Java-16 (3 个回答)
我是一名优秀的程序员,十分优秀!