如何在 Visual Studio Code + java 上调试 Play Framework 1.x 应用程序

Posted

技术标签:

【中文标题】如何在 Visual Studio Code + java 上调试 Play Framework 1.x 应用程序【英文标题】:How do I debug play Framework 1.x applications on Visual Studio Code + java 【发布时间】:2019-04-01 18:31:12 【问题描述】:

正如标题所说,我很难弄清楚如何做到这一点。

我在这部分阅读了文档:

https://www.playframework.com/documentation/1.4.x/ide#custom

不成功。仍然没有调试。我可以通过控制台运行它并使用 VSCODE 编辑代码。

edit 1: 在 Eclipse 中我使用以下文件来运行/调试:

<?xml version="1.0" encoding="UTF-8"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
        <listEntry value="/cashup-starter" />
    </listAttribute>
    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
        <listEntry value="4" />
    </listAttribute>
    <booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true" />
    <listAttribute key="org.eclipse.debug.ui.favoriteGroups">
        <listEntry value="org.eclipse.debug.ui.launchGroup.run" />
    </listAttribute>
    <listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
        <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#xA;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;cashup-starter&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#xA;" />
        <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#xA;&lt;runtimeClasspathEntry internalArchive=&quot;/cashup-starter/conf&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#xA;" />
        <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#xA;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#xA;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;cashup-starter&quot;/&gt;&#xA;&lt;/runtimeClasspathEntry&gt;&#xA;" />
    </listAttribute>
    <booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false" />
    <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="play.server.Server" />
    <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="cashup-starter" />
    <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value=" -noverify -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -Dplay.debug=yes -Dplay.id= -Dapplication.path=&quot;$project_loc:cashup-starter&quot; -Djava.endorsed.dirs=&quot;F:\dev\play-1.5.1/framework/endorsed&quot; -javaagent:&quot;F:\dev\play-1.5.1/framework/play-1.5.1.jar&quot;" />
</launchConfiguration>

在 Visual Studio 代码中,我有这个启动文件:


    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        
            "type": "java",
            "name": "Debug (Launch) - Current File",
            "request": "launch",
            "mainClass": "$file"
        ,
        
            "type": "java",
            "name": "Debug (Launch)-Tup<custom-extincentro>",
            "request": "launch",
            "mainClass": "jobs.Tup",
            "projectName": "custom-extincentro"
        
    ]

【问题讨论】:

您是否安装了 Debugger for Java 扩展? @LeoZhu-MSFT 是的,我已经安装了 Visual Studio 代码文档推荐的所有 java 包 它会抛出任何错误吗?比如“构建失败,你想继续吗?” 是的,我得到: "resource": "/F:/dev/gitrepos/cashup-starter/eclipse/", "owner": "_generated_diagnostic_collection_name_#0", "code": " 964”,“严重性”:8,“消息”:“项目 '%PROJECT_NAME%' 缺少所需的源文件夹:'app'”,“源”:“Java”,“startLineNumber”:1,“startColumn”:1 , "endLineNumber": 1, "endColumn": 1 但我有一个应用文件夹 【参考方案1】:

@ikk1 你试过下面的launch.json配置了吗?

        
            "type": "java",
            "name": "Debug (Launch)",
            "request": "launch",
            "mainClass": "play.server.Server",
            "projectName": "cashup-starter"
        

【讨论】:

你真棒金博。像魅力一样工作!

以上是关于如何在 Visual Studio Code + java 上调试 Play Framework 1.x 应用程序的主要内容,如果未能解决你的问题,请参考以下文章