我正在尝试编译:
public class DNSLookUp {
public static void main(String[] args) {
InetAddress hostAddress;
try {
hostAddress = InetAddress.getByName(args[0]);
System.out.println (hostAddress.getHostAddress());
}
catch (UnknownHostException uhe) {
System.err.println("Unknown host: " + args[0]);
}
}
}
我使用了javac dns.java,但是我遇到了一堆错误:
dns.java:1: error: The public type DNSLookUp must be defined in its own file
public class DNSLookUp {
^^^^^^^^^
dns.java:3: error: InetAddress cannot be resolved to a type
InetAddress hostAddress;
^^^^^^^^^^^
dns.java:6: error: InetAddress cannot be resolved
hostAddress = InetAddress.getByName(args[0]);
^^^^^^^^^^^
dns.java:9: error: UnknownHostException cannot be resolved to a type
catch (UnknownHostException uhe) {
^^^^^^^^^^^^^^^^^^^^
4 problems (4 errors)
我以前从未编译/完成过Java。我只需要这个来测试我的其他程序结果。有任何想法吗?我正在Linux机器上编译。
答案 0 :(得分:15)
该文件需要调用DNSLookUp.java
,您需要输入:
import java.net.InetAddress;
import java.net.UnknownHostException;
位于文件顶部
答案 1 :(得分:4)
将文件重命名为DNSLookUp.java
并导入相应的类。
import java.net.InetAddress;
import java.net.UnknownHostException;
public class DNSLookUp {
public static void main(String[] args) {
InetAddress hostAddress;
try {
hostAddress = InetAddress.getByName(args[0]);
System.out.println(hostAddress.getHostAddress());
} catch (UnknownHostException uhe) {
System.err.println("Unknown host: " + args[0]);
}
}
}
答案 2 :(得分:4)
这里给出的答案都很好,但鉴于这些错误的性质以及“教人钓鱼等等”的精神:
答案 3 :(得分:0)
您需要导入正在使用的类。 e.g:
import java.net。*;
从java.net包中导入所有类。
您也不能在名为dns.java的文件中使用公共类DNSLookUp。看起来是Java教程的时候......
答案 4 :(得分:0)
来自"The public type <<classname>> must be defined in its own file" error in Eclipse,它被标记为重复。
因此,我在这里回答“重复”:
在Eclipse上,您可以在一个文件中准备所有public class
,然后在right-clic -> Refactor -> Move Type to New File
中准备。
那不是完全正确的解决方法(这不会让您在编译时在一个文件中包含多个public class
),但是当您准备就绪时,这将使您可以将它们移入它们的适当文件中。>
来自C#,这对do-forgettable(教程)类是一个令人讨厌的强制性限制,尽管这是一个好习惯。