今天下载了别人的一份代码,跑起来的时候出现了下面结果。

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的版本不一样就会造成冲突。此时可以用<exclusion>标签来解决,在引入对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/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字段,对程序运行前进行命令配置,问题成功解决!!!!!
以上几种问题可能只存在一种(我的是最后一种),可以逐一进行排除!

更多推荐

解决进程结束Process finished with exit code 1的问题