分类: Eclipse Coding

  • myeclipse问题:打war包时发生-Dmaven.multiModuleProjectDirectory system property is not set.

    myeclipse问题:打war包时发生-Dmaven.multiModuleProjectDirectory system property is not set.
    解决:”Window”->”Preferences”->”Java”->”Installed JREs” 编辑jdk参数,
    添加:-Dmaven.multiModuleProjectDirectory=$M2_HOME ​

  • 实例教你配置MyEclipse搭建java Web项目开发环境

    实例教你配置MyEclipse搭建java Web项目开发环境

    首先,在开始搭建MyEclipse的开发环境之前,还有三步工具的安装需要完成,只要在安装配置成功之后才可以进入下面的java Web项目开发环境的搭建。

    1、安装工具

    第一步,下载并安装JDK,到官网上下载安装即可,之后需要细心的配置环境变量,我给大家推荐百度文库的一篇文章,猛戳这里。

    第二步,下载Tomcat,当然可以去Apache Tomcat的官网,同样,您可以移驾到我的资源下载,外送API文档(免资源分)。

    第三步,下载MyEclipse,MyEclipse官网,傻瓜式安装即可。

    2、搭建Web项目开发环境

    然后,我们可以开始使用MyEclipse搭建java Web项目开发环境,只需要跟我一步步操作即可:

    1、新建MyEclipse的工作空间

    2、选择工作空间的路径

    3、建立我们的Web项目

    4、输入Web项目的名称,我们使用的是J2EE1.4,Finish之后一定要选择No,如果选择Y的话,MyEclipse就能使用jdk1.5的环境了。

    5、此时我们的Web项目基本上就算完成了,下面这幅图,我们大家详细的介绍一下它的目录。

    3、配置服务器

    虽然我们的Web项目建完了,但是此时不论是Html,还是Servlet,JSP都不能运行的,我们需要将他们部署到服务器上。服务器也叫Web容器,它就是一种所谓的中间件,Web容器实现了java的借口:servlet。Web容器启动之后一直运行,它时刻监听所有提交到它所监控的端口(默认:8080)的请求,并对此作出反映。

    我们使用的Tomcat,当然你也可以使用其他的(配置方式基本相同)。不管是什么服务器,就跟我们发布.net的web项目时需要配置IIS,并发布项目的道理是一样的。

    下面我们配置Tomcat:

    1、在菜单栏中找到window->preferences。配置Tomcat,选择Tomcat解压之后的路径即可。

    2、Apply之后,配置JDK,添加上它的安装路径即可。

    3、此时我们的服务器就配置成功了,当我们需要运行项目是就可以部署我们的项目并启动,我们就可以在浏览器中使用了。

    编写一个现实登陆的Servlet,并部署访问

    什么是Servlet呢?
    通俗一点,只要是实现了servlet接口的java程序,均称Servlet。Servlet是由sun公司命名的,Servlet = Server + Applet(Applet表示小应用程序),Servlet是在服务器端运行的小程序。

    1、我们先写一个简单的HTML,可以在WebRoot新建,也可以复制一个写好的HTML,我们用post提交方式,当然也可以用get提交,大家可以自己尝试一下。

    用户:
    密码:

    2、完成Servlet,在Web项目的src中右键新建一个类LoginServlet,输入下面代码即可。

    //引入所需要的包 import java.io.; import javax.servlet.; import javax.servlet.http.*; public class LoginServlet extends HttpServlet { //重写doGet方法 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter(“username”); String password = request.getParameter(“password”); //服务器端打印信息 //System.out.println(“username=” + username); //System.out.println(“password=” + password); //设置编码格式 response.setContentType(“text/html;charset=GB18030”); //返回html页面 response.getWriter().println(“”); response.getWriter().println(“”); response.getWriter().println(“”); response.getWriter().println(“”); response.getWriter().println(“”); response.getWriter().println(“欢迎【” + username + “】用户登录成功!!!”); response.getWriter().println(“”); response.getWriter().println(“”); } //重写doPost方法 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }

    3、在WebRoot下的WEB-INF的web.xml,部署我们的Servlet,启动服务器。

    xmlns=”http://java.sun.com/xml/ns/j2ee” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd”> MyServlet LoginServlet MyServlet /LoginServlet

    4、一定要启动服务器,之后在浏览器中输入你的URL,此时我们就可以调用Servlet了。

  • PYPL 10 月 IDE 指数榜:Eclipse 反超 Visual Studio

    PYPL 10 月 IDE 指数榜:Eclipse 反超 Visual Studio

    来看看 IDE,据 PYPL 指数显示,10 月份 Eclipse 以 24.93 % 的成绩击败了 Visual Studio ,夺下冠军宝座。Android Studio 位居第三。

     

    另外,前十名中,IntelliJ 形势大好,已连续数月上涨,本月排名第五。

     

    PYPL 指数是非常流行的参考指标之一,原始数据基于 Google trends 。“ Top IDE Index” 是 PYPL 通过分析在 Google 上搜索 IDE 的频率(次数)而生成,IDE 被搜索越多,则认为越流行。

     

  • Mac下Eclipse导入jdk1.8和apache8的JavaWeb项目报错的一些心得

    Mac下Eclipse导入jdk1.8和apache8的JavaWeb项目报错的一些心得

    ​​1.查看server下是否有apache这个选项,

    2.如果没有,Help->Eclipse Marketplace->Find 搜索 tomcat,等待一会之后出现如下图所示的插件,

    点击install按钮,按照提示进行安装并重启eclipse。 2.查看java->Compiler的level是不是只到1.7,

    3.如果只到1.7的话,下载插件,然后重启Eclipse。

    4.以上的是eclipse的配置

     

  • The Apache Tomcat installation at this directory is version 8.5.6A Tomcat 8.0 installation is expect

    在eclipse中安装tomcat8.5时,报错:

    The Apache Tomcat installation at this directory is version 8.5.6. A Tomcat 8.0 installation is expected.

    解决办法:
    Windows中

    ①在Tomcat的安装目录中找到lib目录,再找到catalina.jar。使用压缩软件(WinRAR或是好压)打开它。
    ②依次找到并双击打开orgapachecatalinautilServerInfo.properties 文件

    server.info=Apache Tomcat/8.5.6
    server.number=8.5.6.0
    server.built=Oct 6 2016 20:15:31 UTC

    改为:

    #Apache Tomcat/8.5.6
    server.info=Apache Tomcat/8.0.0
    #8.5.6.0
    server.number=8.0.0
    server.built=Oct 6 2016 20:15:31 UTC

    在Linux中改法:

    cd [tomcat or tomee home(tomcat目录)]/lib
    mkdir catalina
    cd catalina/
    unzip ../catalina.jar
    vim org/apache/catalina/util/ServerInfo.properties

    `把版本号改成如下形式:`

    server.info=Apache Tomcat/8.0.0
    server.number=8.0.0
    server.built=May 11 2016 21:49:07 UTC

    接着把改好的ServerInfo.properties文件添加到catalina.jar中:

    jar uf ../catalina.jar org/apache/catalina/util/ServerInfo.properties
    cd ..
    rm -rf catalina

  • 解决Setting property ′source′ to ′org.eclipse.jst.jee.server的问题

    解决Setting property ′source′ to ′org.eclipse.jst.jee.server的问题

    这是我于9月4号晚遇到的问题,为了这个问题我一夜没睡!
    对于这个问题,我相信我的方法已经能帮90%的人解决了!
    当你用Eclipse运行web项目的时候,你就会看到控制台出现:
    WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:firstProject’ did not find a matching property.
    这样的字样,说的是server.xml的Service标签里的Engine标签里的Host标签里的Context标签配置了一个’source’属性,属性值是’org.eclipse.jst.jee.server:firstProject’.
    但问题是Context标签是不支持source这个属性的,所以跳出了警告,所以大家也发现的是,尽管有警告,但是大部分人的程序是依然可以运行没有问题的,但少部分人的不能够运行。
    也许你已经在网上查到很多像这样的问题,而且也给出了解决办法,但是你照着解决的方法去做了,警告依然存在!
    那现在你就可以跟着我的步骤来做了:

    我先说一下网上别人所说的步骤,埋个伏笔
    1.双击Servers里的Tomcat v7.0 at localhost

    2.然后跳出个界面:

    看到没,在Server Options选项里有个Publish module contexts to separate XML files的选项,到这里我们也一样把勾勾上,不过问题不是这样就一定解决了,我说过有的朋友这样做了,问题依然没有解决,把勾勾上以后记得保存,如果警告依然存在的朋友们跟着我继续往下看。

    3.

    大家仔细对比下你自己的和我图片上的,你会发现你默认的选项应该是Use workspace metadata这个选项,只不过是笔者我改为了tomcat的安装路径罢了,因为Use workspace的路径文件夹不方便后面的讲解中要找的文件,所以笔者使用第2个tomcat安装目录来操作,而Deploy path:你如果没有改过的话,应该是叫wtpwebapps,因为在写文章之前,我已经改掉了也不清楚是不是这个名字了,但确定的一点是,它肯定不是webapps的,所以此处读者根据自己的Deploy path的值进行下面的操作。
    好了准备工作差不多了,现在是重点来了,为什么好多人做了1.2步操作以后就好了而你自己的没好呢?
    原因是,在做1 2 步操作之前你们已经运行过程序,而运行以后程序就会在tomcat文件夹下多了一个backup文件夹

    里面的目录结构如图:

    有没有很熟悉的感觉,没错这就是从tomcat目录里conf文件夹下拷贝过来的文件
    接下来直接说操作好了:
    4.
    删除掉刚才的backup文件夹[backup所在位置根据第3步所说的,因为笔者使用的时tomcat安装目录所以就在目录下就直接发现了,但如果你用的是Use workspace metadata这个选项的话,你就在workspace.metadata.pluginsorg.eclipse.wst.server.core路径下可以看到里面有很多的文件,Eclipse就把项目发布到了这里,里面的目录结构和tomcat里面的差不多,总之把workspace.metadata.pluginsorg.eclipse.wst.server.core里面的文件全删除了就可以了]
    5.
    找到tomcat目录里的conf目录里的Catalina目录里有个localhost文件夹,把文件夹里面的文件全删除掉。
    6.
    此处告诉大家3.4.5步骤纯属告诉你们Eclipse发布的一个细节,删除上面的文件其实不用那么麻烦:
    在Servers下Tomcat v7.0 at localhost里,首先右键–>移除里面已经添加的所有工程,然后右键–>Clean清空项目虚拟目录里的文件,然后重新运行你们的程序就可以了。

    注意:如果有人想和我一样在第3步server locations里修改项目发布目录的话,只要发布过一次项目你会发现,server locations里面的选项是灰色的,不可以改,怎么办呢,这就需要你照着第6步里面的移除项目,清空文件,然后你就惊奇的发现,server locations可以修改了,OK,累了,我去,写了3个小时,希望能帮到你们解决你们的问题,See You!!!!​​​​

  • 不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧

    不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧

    谈到ABAP和SAP GUI这个话题。很多新同事在加入SAP之前,是做Java和C++开发的,习惯了Eclipse/IntelliJ IDEA/Visual Studio这些现代IDE,对于SAP GUI这个比较”复古“的IDE不太适应。

    其实还有一个选择:ABAP Development Tools,最初在SAP内部称为ABAP in Eclipse。这个工具SAP在很多场合简称为ADT,本文后续部分也使用这个简称。

    简单地说,SAP对Eclipse做了扩展,开发了一些插件,使得开发人员能使用Eclipse完成部分以前在SAP GUI里进行的ABAP开发工作。

  • eclipse中tomcat部署项目不在webapps目录中

    eclipse中tomcat部署项目不在webapps目录中

     

    背景
      eclipse;Server中添加了Tomcat 9.0作为启动容器,但是项目并没有自动部署在Tomcat安装目录下的webapps下;项目部署到哪儿了呢?

    原因
      不像MyEclipse默认将项目部署到tomcat安装目录下的webapps中,Eclipse默认部署到工作目录下的.metadata/.plugins /org.eclipse.wst.server.core/tmp1/wtpwebapps中。

    webapps : tomcat默认部署路径
    wtpwebapps : eclipse默认部署路径

    解决方案
      如果你是用的是Eclipse,并且想让项目也部署在webapps目录下,那么:
      1. 在Server窗口中双击你配置过的Tomcat,进入OverView页面

     

      2. 在OverView页面改图中两处地方即可。如果你发现这里是灰色的,改不了,那是因为你是用旧路径还部署着项目呢,在图1 Server页面中remove你的项目,然后clean一下,再进来就可以改啦。

     

  • 神秘的 Eclipse Collections API : forEachInBoth

    有时候 API 一直在那里,等你去发现。

    1. 听说过 forEachInBoth 吗

    Eclipse Collections 提供了一个名为 forEachInBoth 的函数,只能在 ArrayIterate、ListIterate、RandomAccessListIterate 和 ArrayListIterate 这4个工具类中找到。

    译注:Eclipse Collections 起源于2004年在高盛公司内部开发的一个名为 Caramel 的集合框架。自那以后,这个框架不断发展并在2012年开源成为 GitHub 中一个叫做 GS Collections 的项目,2015年被重新命名为 Eclipse Collections。Eclipse Collections 拥有内存优化的 Sets、Maps 和原始类型集合。

    forEachInBoth 接受两个大小相同的 List 或 Array,按照特定索引对它们迭代,把两个列表中的元素传递给一个接受两个参数的 Procedure。

    Eclipse Collections 中的 ListIterable 尚未支持此函数,也许是因为现在可以对两个列表执行 zip,然后用 forEach 或者 MutableList 的其他 API 完成操作。

    2. 函数签名

    forEachInBoth 在 ListIterate、RandomAccessListIterate 和 ArrayListIterate 中的函数签名非常相似,这里只展示 ListIterate 和 ArrayIterate 的签名。

    ListIterate

    public static <T1, T2> void forEachInBoth(        List<T1> list1,        List<T2> list2,        Procedure2<? super T1, ? super T2> procedure)

    ArrayIterate

    public static <T1, T2> void forEachInBoth(        T1[] objectArray1,        T2[] objectArray2,        Procedure2<? super T1, ? super T2> procedure)

    3. 什么情况下推荐使用 forEachInBoth

    下面的示例中,forEachInBoth 把两个独立的 List、Array 转成 Map。仅用 forEachInBoth 一个函数就能完成在 map 实例上调用 put 方法。

    示例代码

    @Testpublic void forEachInBothList(){    List<Integer> one =            Lists.mutable.with(1, 2, 3);    List<String> two =            Lists.mutable.with("One", "Two", "Three");    Map<Integer, String> map = Maps.mutable.empty();    ListIterate.forEachInBoth(one, two, map::put);    Assert.assertEquals(            Maps.mutable.with(1, "One", 2, "Two", 3, "Three"),            map);}

    用 ArrayIterate 处理两个大小相同的数组非常方便。

    4. zip 函数的用法

    如果采用 zip 函数,可以用流式 API 调用 toMap,处理后的 List 转为 Map。然而,这里不对 Map 使用 forEach 或 each 迭代调用 Map.put。因为接下来要对 Pair 实例迭代,把 Pair 的两部分作为 key 和 value 传入。

    示例代码

    @Testpublic void zipList(){    MutableList<Integer> one =            Lists.mutable.with(1, 2, 3);    MutableList<String> two =            Lists.mutable.with("One", "Two", "Three");    MutableMap<Integer, String> map =            one.zip(two).toMap(Pair::getOne, Pair::getTwo);    Assert.assertEquals(            Maps.mutable.with(1, "One", 2, "Two", 3, "Three"),            map);}

    上面的示例中,调用 zip 会创建一个临时列表。但由于没有其它地方引用,调用 toMap 后临时列表会被垃圾回收。也可以在 zip 之前调用 asLazy,这样可以避免创建临时列表。

    MutableMap<Integer, String> map =        one.asLazy()                .zip(two)                .toMap(Pair::getOne, Pair::getTwo);

    5. 什么时候使用 forEachInBoth、zip

    forEachInBoth 主要优点在于它定义在 static 工具类中,可以直接处理 Java 数组和 java.util.List。如果需要将两个 JDK List 快速转成一个 Map,那么它可能正是你需要的。但是,由于 forEachInBoth 返回类型是 void,因此不能像用 zip 那样采用流式 API。大多数情况下,尤其是需要对结果执行多个操作时,用 zip 处理两个列表更合适。

    如果发现 forEachInBoth 有合适的新用法,请在 GitHub 上创建 issue 让我们知道。当发现有更多好的用例出现,我们会为 ListIterable 添加 forEachInBoth。

  • 有谁知道mac系统下myeclipse不报错也无法运行到底是什么原因

    救命有谁知道mac系统下myeclipse不报错也无法运行到底是什么原因

    救命有谁知道mac系统下myeclipse不报错也无法运行到底是什么原因!!!还有eclipse已经安装了jdk但是JFrame全报错是什么原因啊!!!