我在想,java/ javaw/ 之间有什么区别javaws?我发现在Windows下,大多数Java都是在开始使用的javaw.
最近我注意到一些应用程序正在运行javaw(不在其中java).它们之间有什么区别javaw?如何运行我的Swing应用程序?
我正在尝试将此GUI mod用于Minecraft服务器.我写了一个批处理文件,所以服务器可以启动更多的RAM.当我只运行.jar文件时,没有打开命令窗口,它运行得很好(当然大约有256mb ram)我在线阅读javaw启动一个没有命令行控制台的jar文件.但是当我使用javaw时,命令控制台会打开,但是当我关闭它时程序仍然打开.这是我的批处理文件:
@echo off
"%ProgramFiles(x86)%\Java\jre6\bin\javaw.exe" -jar -Xms1024m -Xmx1024m crafty.jar
@echo on
Run Code Online (Sandbox Code Playgroud)
我不太了解java,所以请尽量清楚.谢谢
第一:我意识到这个问题应该很简单,很多人似乎都经历过这个问题.但是,看来我的问题可能与现有帖子略有不同.
我正在使用NetBeans来编译Java应用程序.完成构建后,输出会正确进入dist \文件夹.那里有jar文件.如果我转到命令行,请导航到该文件夹,然后调用以下命令:
java -jar Prosperity.jar
一切正常.显然,应用程序的名称是Prosperity.以下命令也可以正常工作:
javaw -jar Prosperity.jar
但是,双击.jar文件会显示消息:"找不到主类:",然后提供.jar文件的路径.我已经检查过一百次.jar文件中存在META-INF文件夹,并且其中存在一个具有正确主类名称的MANIFEST.MF.我还检查了.jar文件中是否存在主类(App.class).class文件.
所以问题是:双击文件和运行javaw之间的区别是什么?它真的令人沮丧,它不会只是运行!
谢谢你可以给我的任何方向,我是tearin'我的头发在这里!
如果我有一个由用户启动的java jar或类文件(假设在路径变量中设置了java路径),那么如何从代码中找出java.exe/javaw.exe的绝对路径文件正在启动.
就像在ubuntu上我们可以运行:% which java它显示路径.
但是在Windows上,如果我检查System.getenv()可能会发生多个路径,例如旧版本或新版本.如果通过cmd行,我运行java -version它不会显示路径.
你能告诉我通过纯java或Windows命令行如何找到javaw.exe的位置?
首先,我正在学习Java,但我仍然很新,所以复杂的代码将会超越我的头脑.
当我下载一个.jar文件说安装mod到Minecraft并双击它时,它不会运行.加载轮持续两秒钟然后停止,没有其他事情发生.我知道的.jar设置正确,因为它使用命令运行cmd
cd "wherever the file is"
java -jar "file name".jar
Run Code Online (Sandbox Code Playgroud)
所以我已经尝试使用java\jdk1.7.0_25\jre\bin中的默认程序设置为javaw.exe来运行它.没有任何反应.因此文件关联设置在正确的位置.我在这里不知所措.
这还不错,因为我仍然可以通过cmd运行它们,但是当我到书中关于jar的部分时,我希望能够通过Windows资源管理器GUI运行它,这就像使用的一半好处我能看到的.jar文件.
是否可能是注册表错误?我已经看到了很多关于这个问题的问题,但是大多数问题似乎都是设置.jar的问题,我没有这样做,而且我认为这不是这种情况.
我有Windows Vista 64位.
如果我不够具体,请随时问.
我正在使用PrimeFaces 3.2,我应该在文件系统上存储一个文件.现在,我知道FileUploaded类创建了一个临时文件,因此我将使用java.io.File将其转换为真实文件.
这是我的代码:
String fileName = "D:/upload/file.zip"; //--- this is an example, in my real code it is dynamic
UploadedFile uploadedFile;
//--- getters and setters
InputStream in = uploadedFile.getInputStream();
OutputStream out = new FileOutputStream(new File(fileName));
int read = 0;
byte[] bytes = new byte[1024];
while ((read = in.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
in.close();
out.flush();
out.close();
Run Code Online (Sandbox Code Playgroud)
问题是,在应用程序创建.tmp文件的文件夹中,但它没有"转换"为我想要的文件!日志返回:
[#|2012-04-20T16:30:13.109+0200|SEVERE|glassfish3.1.1|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=114;_ThreadName=Thread-2;|java.io.FileNotFoundException: D:\upload\file.zip (Impossibile trovare il percorso specificato)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:212)
at java.io.FileOutputStream.<init>(FileOutputStream.java:165)
at it.cyborg.cdg.jsfClasses.AbstractController.copyFile(AbstractController.java:240)
at it.cyborg.cdg.jsfClasses.ProgettiController.create(ProgettiController.java:223)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) …Run Code Online (Sandbox Code Playgroud) 这与另一个用户的早期问题有关,询问如何检测代码是否在eclipse IDE中运行.
我注意到Eclipse总是启动程序javaw而不是java.(这并不意味着javaw从Eclipse启动的程序启动).
我可以找到使用的参数
RuntimeMXBean RuntimemxBean = ManagementFactory.getRuntimeMXBean();
List<String> lst = RuntimemxBean.getInputArguments();
for (int i = 0; i < lst.size(); i++)
System.out.println(lst.get(i));
Run Code Online (Sandbox Code Playgroud)
但这并没有告诉我它是否是使用java或启动的javaw.
java或推出javaw?javaw启动程序?因此,对于我正在进行的项目,我需要找出javaw.exe用户机器上的位置.我怎么做? 假设用户在Windows机器上
我使用的方法仅限于Windows的英文版.
我找了安装操作系统的位置,找到Program Files目录,找到Java,jdk目录bin,然后javaw.exe.我知道这不适用于非英语版本的Windows.
什么是与人类语言无关的方式?
所以我从developer.android.com下载了64位版本的ADT Bundle,但是当我运行eclipse时(从这个包中 - 这不是试图将插件添加到现有IDE中,这只是捆绑包)它告诉我在adt ...\eclipse\jre\bin\javaw.exe的路径中缺少javaw.exe
我在我的计算机上发现了我的个人Java安装并将文件复制过来,但现在它说它无法运行.dll文件.
有人有建议吗?也许这个捆绑包使用哪个JRE版本?
javaw ×10
java ×8
windows ×3
eclipse ×2
adt ×1
android ×1
batch-file ×1
file-upload ×1
jar ×1
mainclass ×1
path ×1
primefaces ×1
swing ×1