使用用户输入将java导出到jar

使用用户输入将java导出到jar,java,jar,executable-jar,Java,Jar,Executable Jar,我做了一个小程序,它接受用户的输入,然后输出到一个txt文件。 该程序在eclipse中运行时没有任何问题。然后我将其导出为可运行的jar文件。 现在如果我点击这个文件,它只会生成一个空的txt文件。 那么,有可能创建一个接受用户输入的jar吗?我做错了什么?是的,这是可能的。怎么了?谁知道呢,这里没有太多细节 在黑暗中进行一次疯狂的刺杀: 你在windows上 您正在双击它以启动应用程序 您正在通过中的系统请求输入 在windows上,应用程序必须声明它们是否在应用程序本身中执行命令行操作

我做了一个小程序,它接受用户的输入,然后输出到一个txt文件。 该程序在eclipse中运行时没有任何问题。然后我将其导出为可运行的jar文件。 现在如果我点击这个文件,它只会生成一个空的txt文件。
那么,有可能创建一个接受用户输入的jar吗?我做错了什么?

是的,这是可能的。怎么了?谁知道呢,这里没有太多细节

在黑暗中进行一次疯狂的刺杀:

  • 你在windows上
  • 您正在双击它以启动应用程序
  • 您正在通过中的系统请求输入
在windows上,应用程序必须声明它们是否在应用程序本身中执行命令行操作(显示黑框)。因此,仅在windows上,java.exe有两种变体:java.exe和javaw.exe。预声明-w版本不接受用户输入。java.exe版本将始终显示一个丑陋的黑框,即使应用程序不接受任何输入或输出。默认情况下,javaw用于打开jar文件,因此,在这种情况下,您不能使用System.in

“如果我在windows上双击这个应用程序,那么它就可以工作”这个问题没有解决方案——事实上,没有通用的解决方案可以“让这个jar文件在我复制到的任何系统上正常运行”——获得一个正常运行的JVM(从10年左右开始)不再是用户的责任;这是你的责任,你必须建立一个完整的安装程序


我想你还在学习,在这种情况下-嘿,这不是目标,对吗?只是打开一个dosbox(点击windows键,键入'cmd',点击enter),然后以
java-jar myjar.jar
的身份运行你的应用程序,一切都会好起来的。如果您需要发货,那么,您可以制作一个批处理脚本来完成此操作。

我假设此用户输入来自系统输入流
system.in

它需要在提供输入流的控制台/终端/shell中运行

例如,如果您在linux上运行,请打开终端并运行以下命令:

java -jar myprogram.jar
在Windows上:

javaw -jar myprogram.jar
你(和我们)需要更多的信息。如果没有其他方法,启动命令行提示符,从那里运行java程序,并使用
System.out.println()
输出调试信息。从eclipse转到单机版时,常见的问题是无法包含某些资源文件以及环境差异,如类路径或库可用性