gpt4 book ai didi

java - 即使类存在也找不到符号

转载 作者:行者123 更新时间:2023-11-30 05:51:59 25 4
gpt4 key购买 nike

这可能确实是一个非常简单的问题,但我对 Java 完全陌生,不知道如何解决它。

我有一个 stdlib.jar 文件,其中有一些定义为 StdRandom 的类,我必须在我的程序中使用它们。我读到,要使用像 stdlib.jar 这样的文件,我必须使用默认包。所以我从下面的程序中删除了“package algs4”。但它没有用。

package algs4;
public class PercolationStats
{
//Some method declarations
public static void main(String[] args)
{
//Some code
for(int counter=0; counter<T; counter++)
{
while(!p.percolates())
{
iIndex = StdRandom.uniform(N);
jIndex = StdRandom.uniform(N);
...
}
}



}

每次我编译这个程序时使用:

javac -cp . algs4/PercolationStats.java

我得到错误:

algs4/PercolationStats.java:30: cannot find symbol
symbol : variable StdRandom
location: class algs4.PercolationStats
iIndex = StdRandom.uniform(N);

我还尝试使用以下方式进行编译:

javac -cp .:stdlib.jar algs4/PercolationStats.java

但错误仍然存​​在。

虽然这不是一个好的做法,但我也从 .jar 文件中提取了文件,这给了我 StdRandom.java 文件,但它仍然不起作用。

我的所有文件,包括 stdlib.jar 都在同一目录中。

我该怎么办?

编辑:只是为了让问题更详细以供将来引用:程序中使用的 stdlib.jar 在“默认”包中。

最佳答案

编辑:如果 StdRandom 不在包中,那么您可能确实也需要将代码从包中取出。 (我会试一试 - 自从我不得不使用一个不在包中的类以来已经有很长时间了。)

一般来说,获得一个包含包中类的 stdlib.jar 版本会更好。


我们不知道 StdRandom 在哪个包中。您可能只需要一个 import 语句:

import foo.bar.StdRandom;

... 其中 foo.bar 是包含 StdRandom 的包。或者,您可以使用通配符导入包中的所有类:

import foo.bar.*;

参见 "Creating and using packages" Java 教程的一部分以获取更多详细信息。

虽然你肯定需要在你的类路径中有 stdlib.jar,所以坚持你的第二种编译方法。

您可能还想考虑使用 IDE(例如 Eclipse),它可以让您更轻松地完成所有这些工作,甚至可以根据需要制定导入语句。

关于java - 即使类存在也找不到符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12171771/

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