javac编译程序成功,但java命令无法运行的问题求助
正确的命令行运行方法
你之前的运行思路错了——java命令不是用来直接执行.java源文件的(单文件小项目除外,你的多文件加依赖jar的场景不适用),正确操作如下:
1. 确认编译产物
你已经用javac -cp gson.jar *.java成功编译,当前目录下应该生成了所有对应的.class文件(比如MainApp.class、RepositoryData.class这些),这一步没问题。
2. 执行正确的运行命令
运行时必须把当前目录(你的所有自定义类的.class文件都在这里)和gson.jar同时加入类路径,然后直接执行主类的类名(就是MainApp,不带任何后缀):
Windows系统
java -cp ".;gson.jar" MainApp
Linux/macOS系统
路径分隔符用冒号,命令改成:
java -cp ".:gson.jar" MainApp
之前的命令为啥都失败?
java -cp gson.jar MainApp.java:Java尝试直接跑源文件,但类路径只加了gson.jar,没包含当前目录的自定义类,而且多文件场景下这种方式根本不支持。java -cp gson.jar RepositoryData.java MainApp.java:同样错误,java命令不能同时指定多个源文件来运行多类程序,而且还是没加当前目录到类路径。java -cp gson.jar Comment.java ... MainApp.java:Java会优先执行第一个指定的Comment.java,但这个类没有main方法,自然报错。
内容的提问来源于stack exchange,提问作者user21084337
相关产品推荐
相关产品推荐

