标签: dcevm

如何在Linux中安装DCEVM for Java 7?

DCEVM的主站点没有清楚地解释如何在Linux上安装DCEVM.在Linux中运行"java -jar installer.jar"(通过PuTTy访问)给了我以下异常.

[admin@LINUXBOX jdk1.7.0_55]$ java -jar DCEVM-full-7u79-installer.jar
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:207)
at java.awt.Window.<init>(Window.java:535)
at java.awt.Frame.<init>(Frame.java:420)
at javax.swing.JFrame.<init>(JFrame.java:224)
at com.github.dcevm.installer.MainWindow.<init>(MainWindow.java:43)
at com.github.dcevm.installer.Main.main(Main.java:46)
Exception in thread "main" java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:207)
at java.awt.Window.<init>(Window.java:535)
at java.awt.Frame.<init>(Frame.java:420)
at java.awt.Frame.<init>(Frame.java:385)
at javax.swing.SwingUtilities$SharedOwnerFrame.<init>(SwingUtilities.java:1757)
at javax.swing.SwingUtilities.getSharedOwnerFrame(SwingUtilities.java:1832)
at javax.swing.JOptionPane.getRootFrame(JOptionPane.java:1697)
at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:863)
at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:667)
at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:638)
at com.github.dcevm.installer.Main.main(Main.java:51)
Run Code Online (Sandbox Code Playgroud)

如果需要,我也准备使用Virtual …

linux dcevm

9
推荐指数
3
解决办法
1253
查看次数

Hotswap/DCEVM在Intellij IDEA(社区版)中不起作用

我在使用Intellij IDEA社区版中的hotswap功能时遇到了麻烦.我的是第14.1.4节.

每次关闭调试并更改java代码后,我都已单击"重建项目",并在确认重新加载类时按"是".Intellij报告重新加载了更改的类,但应用程序结果与之前相同.我只是尝试最简单的Java应用程序(即不在像Tomcat,applet等场景中),其中的东西就像System.out.println是字符串连接等.我在调试模式下改变的只是方法体代码,而不是方法签名/名称.我无法得到它.

在Eclipse中我只是直接更改代码并按保存,然后它就可以了.

什么地方出了错?

(备注:

实际上我正在尝试使用DCEVM来实现结构更改(例如更改类名,方法名,添加方法等),认为它可以解决Intellij中发现的热插拔问题.不用说,它没有用.

在eclipse中,我成功使用了DCEVM,并且可以在调试期间更改方法名称.

我进一步尝试了hotswap-agent,它仍然没有用; 我发现一篇文章说IDE必须通过端口5000连接到JVM的JDPA,但不管我怎么试,Intellij控制台显示它仍然通过随机端口连接(51018下面):

"C:\Program Files\Java\jdk1.8.0_60\bin\java" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:51018...."
Run Code Online (Sandbox Code Playgroud)

连接到目标VM,地址:'127.0.0.1:51018',传输:'socket'

是否可以强制它通过一个特定的端口连接?DEBUG_OPT在运行/调试配置中添加环境变量不起作用)

java intellij-idea hotswap dcevm intellij-14

7
推荐指数
1
解决办法
4452
查看次数

TravaOpenJDK11 - HotSwapAgent - 未找到 DCEVM 安装

我正在尝试在 IntelliJ 中使用 HotSwapAgent 插件。因此,我将从此处hotswap-agent.jar下载的路径(在 Trava Open JDK 文件夹中找到)设置为“代理路径” 。但正如你在这里看到的,我收到以下错误:

未找到为当前项目指定的 JDK 的 DCEVM 安装。您应该下载并安装它。

但是,下载链接重定向到此处,其中仅提供版本 8 之前的安装程序(这对我来说似乎很合理,因为我尝试使用的 Trava Open JDK 11 已经修补并包含其自己的代理。

那么,我在这里缺少什么?

java intellij-idea dcevm hotswapagent

7
推荐指数
1
解决办法
785
查看次数

如何让jetty在重新加载修改后的类时阻塞请求?

我正在使用dcevm + run-jetty-run + livereload,在修改java源代码时尝试开发一个Web应用程序而不重新启动jetty.

一切正常.当我修改java类时,livereload会监视更改,并触发浏览器刷新打开的页面以查看修改后的结果.

但我发现它仍然不那么方便:当浏览器重新加载时,dcevm和jetty可能还没有重新加载修改过的类.我必须再次手动刷新页面,但我不确定这次是否显示修改后的结果,而不仔细检查内容.

所以我想知道当我修改一些类并且dcevm正在重新加载时,有没有办法让jetty阻止请求.它将确保始终修改显示的页面.

java jetty hotswap web dcevm

6
推荐指数
1
解决办法
427
查看次数

工具类似于支持java 7的动态代码演变

我一直在使用动态代码评估来动态加载我的Jboss服务器中已更改的类,

我发现这个工具非常有用和有趣,但它有一个问题,它适用于jdk 1.6,但因为我试图在我的项目中使用java 7它失败了.

任何人都可以建议使用java7支持相似类型的工具

virtual-machine java-7 dcevm

5
推荐指数
1
解决办法
2056
查看次数

我可以使用Oracle Java 7 HotSpot VM安装DCEVM吗?

我在MacOS上运行Oracle Java 7(OSX 10.7.5)

java -version:

Java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我最近读到了有关DCEVM的内容,我非常好奇地试用它.但是,我对它的兼容性感到困惑.

根据二进制文件下载页面,有OpenJDK Java 7更新51,构建3的二进制文件.我不太确定这与我目前在我的机器上的Java版本有什么关系.

安装JRE是否需要与DCEVM Hotspot版本匹配?我是否需要安装OpenJDK 7_51_3才能使用有问题的DCEVM?或者我可以使用Oracle JRE安装热点VM吗?

我不完全确定JRE/JDK附带的所有实用程序如何与HotSpot VM交互,如果它们都必须具有相同的构建,那么编译后的字节代码应该能够在任何JVM上运行相同的主要版本号.

任何人都可以提供一些有关如何将所有这些组件组合在一起

作为后续,有没有人知道我是否可以找到OSX的OpenJDK兼容版本,我可以在其上运行DCEVM for Java 7 update 51,build 3?

java openjdk jvm-hotspot hotswap dcevm

5
推荐指数
1
解决办法
2383
查看次数

是否可以使用带有jrebel或dcevm的docker

我已经在我的开发环境中使用了几个星期的docker,它非常好,我不必担心配置我也不需要运行一个完整的虚拟机来运行应用服务器(在我的情况下是JBoss).

但是我似乎已经回到了过去的编译,部署,等待,测试.

现在问题是,有没有办法使用诸如jrebel或dcevm之类的工具来加快速度?此外,这个问题是否有意义?

java jrebel dcevm docker

5
推荐指数
1
解决办法
979
查看次数

模型热交换后,Freemarker removeIntrospectionInfo不能与DCEVM一起使用

我正在使用Freemarker和DCEVM + HotSwapManager代理.这基本上允许我即使在添加/删除方法时也可以热交换类.

一切都像魅力一样,直到Freemarker使用hotswapped类作为模型.它正在抛出freemarker.ext.beans.InvalidPropertyException:即使反射显示该方法存在(在调试会话期间检查),我也没有这样的bean属性.

我在用

final Method clearInfoMethod = beanWrapper.getClass().getDeclaredMethod("removeIntrospectionInfo", Class.class);
clearInfoMethod.setAccessible(true);
clearInfoMethod.invoke(clazz);
Run Code Online (Sandbox Code Playgroud)

清除缓存,但它不起作用.我甚至尝试获取classCache成员字段并使用反射清除它,但它也不起作用.

我究竟做错了什么?我只需要强制freemarker抛弃他已经获得的模型类/类的任何内省.

有什么办法吗?

UPDATE

示例代码

Application.java

// Application.java
public class Application
{
    public static final String TEMPLATE_PATH = "TemplatePath";
    public static final String DEFAULT_TEMPLATE_PATH = "./";

    private static Application INSTANCE;
    private Configuration freemarkerConfiguration;
    private BeansWrapper beanWrapper;

    public static void main(String[] args)
    {
        final Application application = new Application();
        INSTANCE = application;
        try
        {
            application.run(args);
        }
        catch (InterruptedException e)
        {
            System.out.println("Exiting");
        }
        catch (IOException e)
        {
            System.out.println("IO Error"); …
Run Code Online (Sandbox Code Playgroud)

freemarker hotswap dcevm

5
推荐指数
1
解决办法
230
查看次数

热交换代理配置多模块项目


我需要帮助在我的项目中配置hotswap代理以热部署类文件.
在我的项目中,我们有如下项目设置:

WebProject(war)
|
| _ _ Service Project(jar)


服务项目用作Web项目中的jar文件.因此,每当我在服务项目中对java文件进行更改时,我都希望hotswap代理使用最新版本重新加载/替换其类文件,而无需再次部署整个项目.

我已经为jdk 1.7.51hotswap -agent.jar文件下载了dcevm(动态代码演化vm),并且还完成了eclipse配置.每当我在WebProject的.java,.properties文件中进行更改时,它会自动重新加载它,而无需再次部署应用程序.现在我只想以这样一种方式配置我的hotswap代理:如果我在服务项目中对java文件进行了更改,该文件在Web Project中用作jar文件,它应该再次重新加载.class文件或.jar文件.

我是否需要在服务项目的资源文件夹中再添加一个hotswap-agent.properties文件?目前我已将其添加到Web项目的资源文件夹中.

很感谢任何形式的帮助.

java jvm hotswap jvmti dcevm

5
推荐指数
1
解决办法
3784
查看次数

Tomcat 扫描注释太慢

我有一个 Tomcat 8.5.32 配置为使用 DCEVM

\n\n
JAVA_OPTS="-Xms512m -Dcatalina.home=$CATALINA_HOME -XXaltjvm=dcevm -javaagent:/usr/share/tomcat/lib/hotswap-agent-1.3.0.jar=autoHotswap=true"\n
Run Code Online (Sandbox Code Playgroud)\n\n

要动态重新加载的类在 $CATALINA_HOME/conf/Catalina/localhost/mycontext.xml 中指定,以便 Tomcat 直接从 Eclipse 自动重新生成的 .class 文件重新加载它们。

\n\n
<Context docBase="~/workspace/myapp/myapp-web/src/main/webapp">\n<Resources>\n    <PostResources className="org.apache.catalina.webresources.DirResourceSet"\n                   base="/vagrant/workspace/myapp/myapp-models/target/classes" internalPath="/" webAppMount="/WEB-INF/classes" />\n    <PostResources className="org.apache.catalina.webresources.DirResourceSet"\n                   base="/vagrant/workspace/myapp/myapp-services/target/classes" internalPath="/" webAppMount="/WEB-INF/classes" />\n    <PostResources className="org.apache.catalina.webresources.DirResourceSet"\n                   base="/vagrant/workspace/clocial/myapp-web/target/classes" internalPath="/" webAppMount="/WEB-INF/classes" />\n    <PostResources className="org.apache.catalina.webresources.DirResourceSet"\n                   base="/vagrant/workspace/myapp/myapp-web/target/lib" internalPath="/" webAppMount="/WEB-INF/lib" />\n  </Resources>\n</Context>\n
Run Code Online (Sandbox Code Playgroud)\n\n

这可行,但 Tomcat 加载上下文需要两分钟多的时间,因为有一百多个目录。

\n\n

通过org.apache.catalina.startup.ContextConfig.level = FINE在 conf/logging.properties 进行设置,我得到了一条跟踪信息,表明大部分时间大概都花在了搜索注释上。

\n\n

有没有办法告诉 Tomcat 不要在某些目录中查找注释,以便只扫描实际包含带注释的类的目录?

\n\n

我\xc2\xb4一直在阅读ContextConfig 的源代码,似乎有一些排除规则,但我无法\xc2\xb4理解它们。

\n\n

以下是 catalina.out 的摘录:

\n\n
12:39:32.992 INFO org.apache.catalina.startup.HostConfig.deployDescriptor Deploying configuration descriptor …
Run Code Online (Sandbox Code Playgroud)

java tomcat annotations dcevm

5
推荐指数
0
解决办法
1377
查看次数