该篇文章仅涉及 GitHub 中相关的 jMetal 官方代码(MIT License)以及其扩展使用,GitHub网址:jMetal
版本信息
jMetal 版本:5.11-SNAPSHOT
Eclipse 版本:Eclipse Modeling Tools 2020-12 (4.18.0)
需注意,Eclipse必须使用 Modeling Tools 版本,而非普通的Java版本,Eclipse不同版本软件下载官方网址:Eclipse Packages
Eclipse环境配置
该部分可解决Java与Modeling Tools两类Eclipse版本共存的特殊情况,同时也是Eclipse Modeling Tools Java环境配置的简单教程
1、从Eclipse官网下载Modeling Tools版本,下载网址:Eclipse Packages,该网站中有Eclipse多种版本可供下载,找到jMetal所需的版本,如下图所示,选择合适的操作系统版本
2、下载好的zip压缩文件可解压到合适的位置,解压后的文件如下图所示,其中 plugins 文件中包含Eclipse支持的全部依赖,若有其他依赖需要,可手动添加
3、解压后的Eclipse直接双击 eclipse.exe 运行,若无jdk相关的错误提示,可跳过步骤4和步骤5,直接查看步骤6,若提示jdk不存在或是版本不适配的问题,此时需要从jdk官网下载合适的版本,具体的版本号在 eclipse.exe 弹出的窗口中提及,可根据此版本号下载对应的jdk,jdk官方下载网址:Java SE Downloads
4、将下载的jdk保存到合适的位置,记录该文件位置,用于之后的环境变量设置,若下载的jdk文件中不包含jre文件,可参考该网址解决:如何解决安装JDK12版本后没有JRE的问题
5、鼠标右键单击 我的电脑 或是 此电脑 图标,选中 属性
在弹出窗口的左侧导航栏中选择 高级系统设置
而后选择 环境变量
在 系统变量 中添加以下内容:
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
变量名:JAVA_HOME
变量值:D:\Eclipse\eclipse-modeling_tools\jdk-15.0.1
变量名:Path
变量值:%JAVA_HOME%\bin
变量名:Path
变量值:%JAVA_HOME%\jre\bin
其中 JAVA_HOME 的变量值为具体的jdk文件位置
若原有Java版本的Eclipse存在,jdk的环境配置已设置完好,可直接更新相关变量值,不需要重新添加新的变量,配置完成后对原有的Eclipse Java的使用不会造成影响
变量添加完成后,在打开的两类窗口中均选中 确定 按钮,保存环境变量配置
6、jdk配置完成后,再次打开 eclipse.exe ,可能弹出以下错误
用 记事本 打开Eclipse文件夹中的 eclipse.ini 文件,在图中所示的位置添加同样的内容
-vm
jdk-15.0.1/bin/javaw.exe
其中 jdk-15.0.1/bin/javaw.exe 需要根据jdk具体的文件位置进行修改
文件保存后,双击 eclipse.exe ,便可正常使用 Eclipse Modeling Tools
使用教程
1、新建Java项目
与Java版本的Eclipse新建项目方法相同,在菜单栏中选中 File >> New >> Other…
在弹出的向导窗口中找到 Java ,并选中其中的 Java Project ,而后选择 Next >
在新建项目的窗口找到 Project name ,输入自定义的项目名称;Location 部分为该项目存储文件位置,可自行修改;查看 JRE 版本确保其环境存在,一般而言默认的JRE均存在,因此该步骤可跳过;其余选项可默认不变,而后直接点击窗口右下角的 Finish 创建项目
Finish 创建项目可能会弹出以下图片中的内容,可直接选择右下角的 Don’t Create
而后可能会弹出询问Eclipse操作透视图(Java Perspective)是否打开的窗口,可选择 No
至此,新项目创建完毕,可在Eclipse左侧导航栏中查看到项目的存储结构
2、导入jMetal
导入jMetal的方法有两种:
(1)将GitHub中jMetal的源码下载,在新建的项目中以package包的形式导入所需的jMetal代码
(2)将封装好的jMetal jar包导入新建项目,import相关package使用jMetal
两种方法各有优缺:
(1)以源码形式导入jMetal,适用于需要对jMetal的基本功能进行按需修改的操作,但jMetal不同部分的package可能相互依赖,因此导入的源码复杂而多样
(2)导入jar包,可以避免第一种方法产生的缺点,但在需要修改jMetal代码的情况下,需要重写相关函数调用
博主更为推荐第二种方法,主要因为在大多数情况下jMetal源码提供的功能已经足够齐全,重写部分