今天下载了别人的一份代码,跑起来的时候出现了下面结果。
Process finished with exit code 1
通常情况下我们知道代码返回0是正常运行结束,而返回-1是错误结束,因此返回1且不报错的情况极少,但确实没有正常运行。
漫长的debug路程。。。
1、通过将中的Exception改为Throwable,然后debug,查看是否能显示报错。
try{
//你的代码
}catch (Exception e) {
e.printStackTrace();
Log.printLine("Unwanted errors happen");
}
事实上,我的还是不报错,但是还是返回1
2、网上查一下程序返回1的几种情况:
1)、tomcat使用的端口号重复,需要重新设置端口号,具体方法可以去网上搜
2)、maven中重复依赖导致的冲突情况
例如,A依赖于B,C,而B依赖于C,当引入A的依赖时,就会出现重复依赖了C,如果C的版本不一样就会造成冲突。此时可以用
标签来解决,在引入对B的依赖时不引入B对C的依赖。
使用方法如下面的代码,在引入对cloudsim的依赖时,不引入commons-math3、junit两包的依赖
<dependency>
<groupId>org.cloudbus.cloudsim</groupId>
<artifactId>cloudsim</artifactId>
<version>4.0</version>
<exclusions>
<exclusion>
<artifactId>commons-math3</artifactId>
<groupId>org.apache.commons</groupId>
</exclusion>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
3)子模块与父模块的继承导致的依赖冲突
Maven提供了dependencyManagement元素既能让子模块继承到父模块的依赖配置,又能保证子模块依赖的使用灵活性。
在dependencyManagement元素下的依赖声明不会引入到实际的依赖,不过它能约束dependencies下的依赖使用。
为了保持版本等一致,若存在继承父模块的情况,在子模块中不需要重复声明依赖的版本。
父模块依赖部分代码示例:
<dependencyManagement>
<!--放置的都是项目所依赖的jar包-->
<!--dependencyManagement元素既能让子模块继承到父模块的依赖配置,又能保证子模块依赖的使用灵活性。
在dependencyManagement元素下的依赖声明不会引入到实际的依赖,不过它能约束dependencies下的依赖使用。-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
子模块依赖部分代码示例
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
</dependency>
关于项目依赖这部分,我下载的代码很杂,所以起初认为可能性比较大,改依赖改了有两天,但是还是不行,因此开始寻找别的方法。
3、项目运行前需要配置的情况
摘自https://vimsky.com/article/3690.html
1)适用于Windows,Linux,部分Mac电脑:
ALT + SHIFT + F10,Right,E,Enter,Tab,输入你的命令行参数,回车。
带有“OS X 10.5”键架构的Mac:
CTRL + ALT + R,右键,E键,回车,Tab键,输入你的命令行参数,回车。
2)次佳解决方法
在“运行”菜单上有一个"编辑配置"项目,它位于工具栏上的两个绿色"run"和"debug"箭头的左侧。在该面板中,使用左上方的"+"按钮创建配置,然后可以选择包含 main()的类,添加VM参数和命令行参数,指定工作目录和任何环境变量。
还有其他选项:代码覆盖,日志记录,构建,JRE等
3)第三种解决方法
使用intellij的话,转到Run > Edit Configurations
(运行>编辑配置)菜单设置。将出现一个对话框,就可以将参数添加到Program arguments
输入字段。
我用的是第三种解决方法,通过配置Program arguments字段,对程序运行前进行命令配置,问题成功解决!!!!!
以上几种问题可能只存在一种(我的是最后一种),可以逐一进行排除!