Java+Eclipse:如何调试接收管道/重定向 stdin 的 java 程序?

2023-11-21

我正在使用 Eclipse 开发 Java 程序,并且想在程序中添加一个选项来在没有参数的情况下解析 stdin。 (否则它会解析文件)

如果我执行的话我会遇到问题"somecommand | java -jar myjar.jar"然后去调试...然后意识到我不知道如何在 Eclipse 中启动这样的进程。如果我在命令提示符下运行它,我无法附加到正在运行的进程,因为该进程立即启动。

关于如何调试有什么建议吗?

edit:看,问题是,我最初编写程序是为了采用文件名参数。然后我认为它也可以使用标准输入,所以我did从我的程序中抽象出InputStream(正如队列先生所建议的那样)。它在文件上运行良好(java -jar myjar.jar myfile),但运行时不运行type myfile | java -jar myjar.jar。我怀疑这两种情况有什么不同(eof 检测不同?),但我真的很想调试。

// overall program structure follows:

public static void doit(InputStream is)
{
    ...
}

public static void main(String[] args)
{
    if (args.length > 0)
    {
        // this leaves out the try-catch-finally block,
        // but you get the idea. 
        FileInputStream fis = new FileInputStream(args[0]);
        doit(fis);
        fis.close();
    }
    else
    {
        doit(System.in);
    }
}

使用管道在命令行上运行您的应用程序,但添加 JVM 参数以进行远程调试,如下所示:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044

suspend=y将告诉 JVM 在附加调试器之前不要实际运行程序。

接下来,进入 Eclipse 调试启动配置(Run -> Debug Configurations...)并创建一个“远程 Java 应用程序”来连接到您的应用程序。在 Eclipse 中运行启动(设置一些断点后),您应该能够进行调试。不是很方便,但如果您无法在没有管道的情况下重现问题,这是一个选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java+Eclipse:如何调试接收管道/重定向 stdin 的 java 程序? 的相关文章

  • 使用 Firebase Java API 检索/格式化数据的最佳方式

    我在用着Firebase用于数据存储Android项目 并使用Firebase Java API来处理数据 不过 我不确定我是否尽可能高效地完成此操作 并且我希望获得一些有关检索和格式化数据的最佳实践的建议 我的Firebase存储库看起来
  • Spring Kafka - 为任何主题的分区消耗最后 N 条消息

    我正在尝试读取请求的卡夫卡消息数 对于非事务性消息 我们将从 endoffset N 对于 M 个分区 开始轮询并收集当前偏移量小于每个分区的结束偏移量的消息 对于幂等 事务消息 我们必须考虑事务标记 重复消息 这意味着偏移量将不连续 在这
  • Logback线程池

    我使用 Logback 进行日志记录 我有一个问题 我将 AsyncAppender 与 ConsoleAppender 结合使用 当应用程序启动时 它会创建具有 logback 线程名称的线程池 所有日志记录工作均由 AsyncAppen
  • Eclipse JAVA工具jar不存在

    The archive C Java jdk1 6 0 26 32 lib tools jar which is referenced by the classpath does not exist 这是我运行Tomcat时遇到的错误 清理
  • CDI 对象无法使用注入的构造函数进行代理

    当尝试将参数注入 CDI bean ApplicationScoped 的构造函数时 我遇到以下问题 Caused by org jboss weld exceptions UnproxyableResolutionException WE
  • 如何在Eclipse中制作war文件[重复]

    这个问题在这里已经有答案了 制作war文件的简单方法是什么 当我右键单击 在服务器上运行 时 我的项目正在运行 但我想部署在 tomcat 服务器上 我已经安装了m2clipse但这给了我一个错误 maven是否必须制作war文件 我需要特
  • 如何获取JavaFX的版本号?

    如何在运行时找出我正在使用哪个版本的 JavaFX 简单的方法之一就是简单地阅读javafx properties文件位于您的 JAVA HOME jre lib目录 我现在安装了 Java 1 7 u9 与之捆绑的 JavaFX 是 v2
  • 如何将 (A OR B) AND C 等表达式展开为 A AND C OR A AND B?

    我努力了Javaluator这帮助我评估了这样的表达式 A OR B AND C 但现在我只想扩展表达式 A OR B AND C to A AND C OR A AND B任何人都可以告诉我如何在 Java 任何 API 中执行此操作或任
  • 是否有适用于 Java 的 Harel Statechart DSL 工具?

    我正在寻找一种能够理解 DSL 的工具 在其中我可以定义生成 Java 代码的状态图 或者 DSL 中的状态图可以按原样运行 该工具最好用 Java 编写 并且必须根据 Harel 状态图 或等效的 UML 2 状态机 的定义支持超级状态和
  • 如何在Netbeans中自定义jTable标题列字体大小?

    我尝试改变jtable标题字体大小Netbeans 但还不能 无论如何 表行字体大小已成功更改 这是我使用的方法 更改后的输出 问题 标题字体大小未更改 但我也想改变这一点 所以请帮助我该怎么做 一种方法是使用UIManager并替换默认的
  • 为什么在java中加载JNI是在静态初始化程序中完成的?

    在许多使用 JNI 的示例中 我看到类似以下内容 class SampleClass static System loadLibrary somelib 这种特殊语法的目的是什么 为什么使用这个 而不仅仅是在类构造函数或类似的东西中 我想你
  • java - IBM-IEEE 双精度浮点字节转换

    我需要在 Java 中对字节数组进行 IBM IEEE 浮点转换 我能够使用成功地进行单精度浮点字节的转换http www thecodingforums com threads c code for converting ibm 370
  • 如何在 Jersey RESTful Web 服务中放置 cookie?

    我想通过 Jersey API 将 cookie 从 PUT webservice result 放置到 POST webservice 这是我的代码 WebResource service1 client resource http te
  • 用于计算句子中单词数的正则表达式

    public static int getWordCount String sentence return sentence split a zA Z0 9 a zA Z0 9 1 length sentence replaceAll a
  • android.R.layout.simple_list_item_1是什么?

    在我看到的所有示例中 他们在创建 ArrayAdapter 时仅使用 android R layout simple list item 1 android R layout simple list item 1是什么 它只是一个名为sim
  • AWS Java SDK 中 DynamoDB v2 的迁移详细信息?

    有没有人对新的命名空间进行了更改 com amazonaws services dynamodbv2 以及 AWS Java SDK 1 4 2 及更高版本 中 DynamoDB 的接口 本地二级指数的发布显然需要根据1 4 2 发行说明
  • 如何为信号量中等待的线程提供优先级?

    我使用信号量来限制访问函数的线程数量 我希望接下来要唤醒的线程应该由我将给出的某个优先级选择 而不是默认信号量唤醒它们的方式 我们怎样才能做到这一点 这是实现 class MyMathUtil2 implements Runnable do
  • C中使用JNI从对象获取对象

    public class Student private People people private Result result private int amount 这是 Java 中类的示例 在C中 我试图获取 学生 中的 人 但失败了
  • Java中精确的时间测量

    Java 提供了两种获取当前时间的方法 System nanoTime and System currentTimeMillis 第一个给出的结果以纳秒为单位 但实际精度比这要差得多 许多微秒 JVM 是否已经为每台特定机器提供了最佳的价值
  • Java 中的下载管理器 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要通过 FTP HTTP 从 Java 获取几个大文件 几个演出 有现成的库 java 命令行工具

随机推荐

  • 我可以更改 PyCharmProjects 的位置/名称吗?

    我在 Ubuntu 12 04 上使用 PyCharm 3 0 它自动创建了一个名为的文件夹 PyCharmProjects用于存储项目文件夹 是否有可能 更改此文件夹的位置 更改此文件夹的名称 我在界面 JetBrains 网站或设置文件
  • mPDF - 基于元素高度的分页符

    我在用着mpdf在 Laravel 和这个包4 0版本 问题是我有一个不同高度的问题列表 其中有 4 个选项 而且我不知道每个 div 标签的确切高度和近似高度 其中有哪些问题和答案选项 我不想要我的某些部分转到另一个页面的问题 我的问题的
  • html5shiv 无法在 IE8 中运行?

    我无法在 IE8 中使用 HTML5 元素获取样式 我已经搜索过 stackoverflow 和 Google 没有任何建议我尝试过工作 我从一个更复杂的页面开始 我正在将 XHTML 框架转换为 HTML5 并且没有丝毫担心 但是在模拟和
  • 在(c#)库中使用 List 与 LinkedList 的性能差异是什么[重复]

    这个问题在这里已经有答案了 可能的重复 什么时候应该使用 List 和 LinkedList 这个问题与我之前合并的问题有关 与列表与链表 如果我不希望对我的数据结构使用按索引访问 那么通过使用 LinkedList 而不是 List 可以
  • C++ 程序因 std::bad_alloc 而终止,但 valgrind 报告没有内存泄漏

    我的程序失败并显示 std bad alloc 错误消息 该程序是可扩展的 因此我使用 valgrind 在较小的版本上进行了测试 并且没有内存泄漏 这是统计力学的应用 所以我基本上制作了数百个对象 更改它们的内部数据 在本例中为双精度的
  • 应用程序池启动模式:OnDemand 与 AlwaysRunning,哪个最好?

    我的应用程序池一直使用 OnDemand 启动模式 但最近我听说 AlwaysRunning 模式 它允许部署到 IIS 的 ASP NET 应用程序在部署后立即可用 启用此功能似乎会导致 IIS 在应用程序部署后立即启动该应用程序 从而消
  • python:绑定如何工作

    我想了解 python 中的变量绑定到底是如何工作的 让我们看看这个 def foo x def bar print y return bar y 5 bar foo 2 bar 这打印 5 对我来说似乎是合理的 def foo x def
  • 从 url 安装 apk

    我正在尝试从 URL 安装 APK 这是我的代码 Intent promptInstall new Intent android content Intent ACTION VIEW promptInstall setFlags Inten
  • 通过命令行删除 PDF 注释

    有没有办法批量删除所有 PDF 注释 包括突出显示 注释 注释 箭头 例如 通过命令行 下列系列命令解决了我的问题 pdftk in pdf output uncompress sed Annots d pdftk output out p
  • 如何避免指针运算中的乘法?

    如果我写 int main int argc char argv int temp 50 3 return temp argc temp 0 并用 Visual C 编译它 我得到 009360D0 55 push ebp 009360D1
  • 用于验证 URL 的 JavaScript 正则表达式

    我正在使用以下正则表达式验证 URL 我想验证谷歌网站但它返回 false 可以在下面的 R E 中更改哪些内容来验证谷歌网站 console log learnRegExp http www google com 123 false co
  • 如何在gin中对路线进行分组?

    我想将我的路线分组在不同的文件中 这样主文件就不会很混乱 我想在他们自己的文件中添加类似的内容 v1 router Group v1 v1 Group users usersRoutes v1 Group pictures pictures
  • 如何禁用除最顶层视图之外的所有视图的触摸输入?

    我有一个包含多个子视图的视图 当用户点击子视图时 子视图的大小会扩大以覆盖大部分屏幕 但其他一些子视图在下面仍然可见 当子视图之一像这样 展开 时 我希望我的应用程序忽略对其他子视图的触摸 有没有一种简单的方法可以实现这一目标 我可以编写代
  • 如何从 Flutter 中的通知导航到应用程序中的特定 MaterialPageRoute

    是否可以通过通知单击导航到应用程序中的特定 MaterialPageRoute 我在主屏幕中配置了通知 void configureNotifications final FirebaseMessaging firebaseMessagin
  • 如何访问派生类中的受保护成员?

    From http www parashift com c faq lite basics of inheritance html faq 19 5 在类的受保护部分中声明的成员 数据成员或成员函数 只能由该类的成员函数和友元以及派生类的成
  • Class.getResource() 和 ClassLoader.getResource() 有什么区别?

    我想知道两者之间有什么区别Class getResource and ClassLoader getResource 编辑 我特别想知道文件 目录级别是否涉及任何缓存 如 目录列表是否缓存在类版本中 据我所知 以下内容本质上应该做同样的事情
  • scanf char 指针中的字符串[重复]

    这个问题在这里已经有答案了 我想扫描一个字符串并指向一个char指向此扫描字符串的指针 int main int argc char argv char string scanf s string printf s n string 但给出
  • 属性选择器、JavaScript 和 IE8

    我正在尝试使用属性选择器和 CSS 来格式化元素 HTML 看起来像 div User Name div CSS 是 highlight true background color red highlight false backgroun
  • 包安装错误:编译失败

    我最近将 R 更新到 3 1 0 我尝试将 R Framework 中的软件包移至 3 1 我运行的是 OSX Mavericks 结果搞砸了 所以在全新安装之前完全卸载了所有内容 重新安装软件包时我没有遇到任何问题 直到我点击foreca
  • Java+Eclipse:如何调试接收管道/重定向 stdin 的 java 程序?

    我正在使用 Eclipse 开发 Java 程序 并且想在程序中添加一个选项来在没有参数的情况下解析 stdin 否则它会解析文件 如果我执行的话我会遇到问题 somecommand java jar myjar jar 然后去调试 然后意