我最近有一个让我从命令行运行java程序的类,我似乎遇到了cmd找不到主类的问题
我已正确安装java,java和javac命令会提供相应的菜单。当我按下javac UDPServer.java时没有问题,但是如果我按下java UDPServer,我会收到错误。有什么建议吗?
import java.io.*;
import java.net.*;
import java.util.*;
class UDPServer {
public static void main(String args[]) throws Exception
{
InetAddress srvIP = InetAddress.getByName("192.168.1.3");
DatagramSocket serverSocket = new DatagramSocket(5000,srvIP);
byte[] receiveData = new byte[64]; byte[] sendData = new byte[64];
while(true)
{
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData());
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
Calendar rightNow = Calendar.getInstance();
sendData = rightNow.getTime().toString().getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
serverSocket.send(sendPacket);
}
}
}
另外,另一个快速问题:我正在运行Ubuntu VM,我必须在我的主机上运行Server.java程序,在我的VM上运行Client.java。当我尝试配置IP地址时。我不知道该放什么,有两个:以太网适配器虚拟盒和以太网适配器局域连接。要连接两个程序,我应该使用哪些程序?\
提前致谢
答案 0 :(得分:0)
您很可能在java源代码中指定了包名。在这种情况下,您需要在运行类时指定。
答案 1 :(得分:0)
答案 2 :(得分:0)
我知道这是迟到的反应,可能不再相关了。
首先,您无法运行*.java
文件,因此您需要将其编译为类文件,然后运行它。
有关如何在控制台中使用javac的详细信息,请参阅:javac
为了进一步解释,*.java
文件只是一个文本文件,需要编译成java机器代码(*.class
)。最后将整个程序包装在一起,然后导出到一个名为*.jar
的档案,这个档案相当于*.exe
但要解决代码中的其他一些缺陷:
1.导入java.io.*
,java.net.*
,java.util.*
来实现这一目标
要正确执行此操作,只需导入所需的软件包/类,然后将其余部分保留下来
2.我知道你的类使用cmd和javac来编写java代码,但除了你正在编写需要使用javac编译的程序之外,这没有任何实际意义。
您可以使用各种编译器和编辑器自动编译并帮助您调试代码,只需几个:Eclipse,netbeans或blueJ