Tag: 运行时

在Java和C中在运行时调用名为“string”的方法

我们如何在运行时调用名称为string的方法。 任何人都可以告诉我如何在Java和C中做到这一点

防止启动Java应用程序的多个实例

我想阻止用户并行多次运行我的java应用程序。 为了防止这种情况,我在打开应用程序时创建了一个锁定文件,并在关闭应用程序时删除了锁定文件。 当应用程序运行时,您无法打开另一个jar实例。 但是,如果通过任务管理器终止应用程序,则不会触发应用程序中的窗口关闭事件,也不会删除锁定文件。 如何确保锁定文件方法有效或我可以使用其他机制?

包含多个空格的参数上的Runtime.exec

任何人都可以进行以下运行吗? public class ExecTest { public static void main(String[] args) { try { //Notice the multiple spaces in the argument String[] cmd = {“explorer.exe”, “/select,\”C:\\New Folder\\file.txt\””}; //btw this works //String cmd = “explorer.exe /select,\”C:\\New Folder\\file.txt\””; //and surprisingly this doesn’t work //String[] cmd = {“explorer.exe”, “/select,\”C:\\New Folder\\file.txt\””}; //Update: and (as crazy as it seems) the following […]

使用System.setOut()重定向Runtime.getRuntime()。exec();

我有一个程序Test.java: import java.io.*; public class Test { public static void main(String[] args) throws Exception { System.setOut(new PrintStream(new FileOutputStream(“test.txt”))); System.out.println(“HelloWorld1”); Runtime.getRuntime().exec(“echo HelloWorld2”); } } 这应该将HelloWorld1和HelloWorld2打印到文件text.txt。 但是,当我查看文件时,我只看到HelloWorld1。 HelloWorld2去了哪里? 它消失在空气中吗? 假设我想将HelloWorld2重定向到test.txt。 我不能在命令中添加“>> test.txt”,因为我会得到一个文件已经打开错误。 那我该怎么做?

检查Java版本时出错:找不到java.dll

为什么我会这样? 我该如何解决? C:\Users\ash>java version Error: Registry key ‘Software\JavaSoft\Java Runtime Environment’\CurrentVersion’ has value ‘1.7.0_01’, but ‘1.7’ is required. Error: could not find java.dll Error: Could not find Java SE Runtime Environment.

适用于Java 5和Java 6的即时内存Java代码编译

如何从Java 5和Java 6中的任意字符串(在内存中)编译java代码,加载它并在其上运行特定方法(预定义)? 在你点燃之前,我查看了现有的实现: 大多数人依赖Java 6 Compiler API。 那些没有,依靠技巧。 是的,我检查了commons-jci。 要么我太密集了,不能理解它是如何工作的,要么就是它没有。 我找不到如何向编译器提供当前的类路径(这是非常巨大的)。 在有效的实现上(在Java 6中),我找不到如何正确加载内部类(或内部匿名类)。 如果整个东西都在内存中,我会非常喜欢它,因为它在多个环境中运行。 我确信之前已经解决了这个问题,但我找不到任何看起来甚至是谷歌半生产质量的东西(除了jci,正如我之前所说,我还没有设法使用)。 编辑: 我查看了JavaAssist – 我需要内部类,Java 5.0语言级支持以及使用整个类路径进行编译。 另外,我想动态创建新类。 我可能弄错了,但我找不到如何用JavaAssit做到这一点。 我愿意使用基于文件系统的解决方案(调用javac),但我不知道如何划分类路径,也不知道如何使用特殊的类加载器加载文件(不在我的类路径中)回收多次调用。 虽然我知道如何研究它,但我更喜欢现成的解决方案。 Edit2:现在,我满足于BeanShell“评估”。 显然,它完成了我需要它的一切(获取一个字符串,在’当前’类路径的上下文中评估它。它确实错过了一些Java 5特性,但它可以使用枚举(不定义)和编译’generics’(擦除) )类,所以它应该足够我想要的东西。 我不想将答案标记为已被接受,因为我希望能找到更好的解决方案。 Edit3:接受了beanshell建议 – 它确实非常有用。

如何在Java中获取程序窗口的x和y?

有没有办法让我在java中获取窗口的X和Y值? 我读到我将不得不使用运行时,因为java不能直接混乱,但我不太清楚如何做到这一点。 谁能指出一些关于如何获得这个的链接/提示?

从另一个java程序运行java程序

我正在研究一个简单的java程序。 它只是编译并执行另一个java程序。 我正在使用Runtime.exec()函数进行编译和运行。 编译没有问题。 但是当它运行时,如果第二个程序需要输入来从键盘读取,我不能从主进程中提供它。 我使用了getOutputStream()函数。 但它无济于事。 我会提供我的代码。 public class sam { public static void main(String[] args) throws Exception { try { Process p = Runtime.getRuntime().exec(“javac sam2.java”); Process p2 = Runtime.getRuntime().exec(“java sam2″); BufferedReader in = new BufferedReader( new InputStreamReader(p2.getInputStream())); OutputStream out = p.getOutputStream(); String line = null; line = in.readLine(); System.out.println(line); input=input+”\n”; out.write(input.getBytes()); p.wait(10000); out.flush(); […]

读取java exec的输出

你好我有一些关于java的问题。 这是我的代码: public static void main(String[] args) throws Exception { Process pr = Runtime.getRuntime().exec(“java -version”); BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream())); String line; while ((line = in.readLine()) != null) { System.out.println(line); } pr.waitFor(); System.out.println(“ok!”); in.close(); System.exit(0); } 在那个代码我试图得到一个java版本命令执行是好的,但我无法读取输出它只是返回null。 为什么?