如何在终端运行带依赖的Java项目并传入命令行参数
问题原因
你遇到的编译报错是因为只单独编译了Main.java,Java编译器默认不会自动关联编译同目录下未显式指定的依赖源文件,因此找不到cardano_cubic类的定义。同时由于你的类都属于com.company包,运行时也需要遵循Java包的类加载规则。
解决方法
方法1:直接编译所有源文件(无需调整目录结构,适合快速测试)
- 进入三个Java文件所在的目录,执行以下命令一次性编译所有源文件:
javac *.java
执行完成后目录下会生成Main.class、cardano_cubic.class、Complex.class三个字节码文件。
2. 运行时需要使用全限定类名,同时指定当前目录为类加载路径,传入命令行参数的格式如下(示例传入参数1、-2、3、4,可替换为你需要的参数):
java -cp . com.company.Main 1 -2 3 4
方法2:遵循标准Java包结构(推荐,适合正规项目)
Java要求带包的类需要存放在和包名对应的目录结构下,具体操作如下:
- 在当前目录创建多层子目录
com/company,将三个Java文件移动到com/company目录中。 - 退到
com目录的同级目录(也就是项目根目录),执行编译命令:
javac com/company/*.java
- 运行命令和方法1一致,直接在项目根目录执行:
java com.company.Main 参数1 参数2 参数3 参数4
补充说明
Java类名官方推荐使用大驼峰命名规范,你当前的cardano_cubic类名不符合规范,建议改为CardanoCubic,修改后同步调整Main中调用的类名即可,不会影响功能逻辑。
内容的提问来源于stack exchange,提问作者ps1nk4
相关产品推荐
相关产品推荐

