Tag: 运行时

从Java运行其他程序

我需要从我自己的Java程序运行其他几个程序,基本上我需要运行这些命令行语句。 svn log –xml -v > svn.log 和 java -jar example.jar arg1 arg2 我需要在我自己的程序中使用从这些程序写入控制台的文本输出。 我已经尝试使用svn运行Runtime.getRuntime()。exec(),但它似乎没有做任何事情,因为它没有生成svn.log文件。 另外两个程序都需要在不同的地方调用,需要从一个文件夹内部调用svn行,并且需要从另一个文件夹调用java行。 关于如何解决这个问题的任何想法? 如果在Java中无法做到这一点,有没有办法在C#中做到这一点? 谢谢

用Java运行Python脚本

我正在尝试在执行我的java代码期间运行python脚本,因为它将取决于从python脚本接收的输出。 到目前为止,我已经尝试过使用jythonc,遗憾的是没有成功,现在我试图使用java Runtime和java Process来执行python脚本。 现在我在尝试调用python脚本时遇到了问题。 我觉得它甚至没有调用脚本,因为它需要不到几秒钟才能进入下一页…. 问题可能是我如何调用python脚本? 我试图通过Web应用程序运行它… 这是我的一些代码: String run = “cmd /c python duplicatetestingoriginal.py” ; boolean isCreated = fwr.writeFile(BugFile, GD, 500, true, 5, “LET”); if(isCreated){ try{ r = Runtime.getRuntime(); p = r.exec(run); BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream())); BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream())); String line = “”; while ((line = stdInput.readLine()) != […]

在运行时替换某些方法的内容

我想在运行时替换一些方法的内容。 我知道我可以使用javassist ,但它不起作用,因为我想要增强的类已经被系统classLoader加载。 我该怎么做,在运行时替换方法的内容? 我应该尝试卸载课程吗? 我怎样才能做到这一点 ? 我看到它是可能的,但我无法弄清楚如何做到这一点。 如果可能的话,我想避免使用外部库,我想自己编写代码。 更多信息: – 我想要增强的类包含在一个框架中(在一个jar文件中) – 我的代码实际上是这个框架的一个插件 – 我的插件运行的框架有自己的classLoader ,但是这个classLoader没有加载自己的类(它将它们委托给系统类加载器) – 我正在使用的框架是Play 。 谢谢您的帮助 !

当我的Java应用程序退出/崩溃时,如何摆脱Java子进程?

我用Java启动子进程如下: final String[] cmd = {“”}; Process process = Runtime.getRuntime().exec(cmd); 它现在在后台运行。 一切都好又好。 如果我的程序现在崩溃(它仍然在开发:-)),子进程似乎仍然存在。 如何在父Java进程终止时自动结束? 如果有帮助,我使用的是Mac OS X 10.5

有没有办法快速编译/加载fxml文件只有一次,而不是每次重启应用程序?

我有一个程序,在执行时加载许多fxml文件。 应用程序将在短时间内完成,加载应用程序只需要很长时间。 有许多fxml文件(20+),所有这些fxml文件都加载了Java代码。 应用程序已完成并可以使用,但每次执行程序时都会加载所有文件。 fxml文件只能编译一次,因为完成后它们不会被更改吗? java代码当然会编译一次,它只是fxml文件。 应用程序现在需要25秒才能启动,加载fxml需要14秒。 有没有办法让这一切更快? 编辑#1: 是否有免费提供的工具可以更快地执行应用程序(Java)? 或者执行时间仅取决于程序的编写方式? 哪种设计模式可以帮助缩短应用程序的执行时间? 编辑#2: 以下代码将简要解释我的问题: package main; ……. ……. public class MainClass { …. …. List controllerList; public mainClass(List controllerList) { this.controllerList = otherClass.getControllerList(); loadFXMLFiles(); } public void loadFXMLFiles() { for(InformationController controller : controllerList) { controller.loadFXML(); } doOtherStuff(); } …. } 所有这些InformationControllers也加载了其他fxml文件,所以它实际上是一个加载的fxml文件树。 这是在应用程序的每次启动时加载的,所以有没有办法只加载一次这样做?

在执行期间,java程序如何告诉它使用了多少内存?

在执行期间,java程序如何告诉它使用了多少内存? 我不在乎它的效率如何!

Javareflection:如何在运行时覆盖或生成方法?

在普通Java中,可以在运行时以编程方式覆盖类的方法(甚至创建新方法)? 即使我在编译时不了解类,我也希望能够这样做。 我在运行时重写的意思是: abstract class MyClass{ public void myMethod(); } class Overrider extends MyClass{ @Override public void myMethod(){} } class Injector{ public static void myMethod(){ // STATIC !!! // do actual stuff } } // some magic code goes here Overrider altered = doMagic( MyClass.class, Overrider.class, Injector.class); 现在,这个调用…… altered.myMethod(); …将调用Injector.myMethod()而不是Overrider.myMethod() 。 Injector.myMethod()是静态的 ,因为在执行“magic”之后,它会从不同的类实例(它是Overrider)调用,(因此我们阻止它访问本地字段)。

扫描仪使用后关闭

使用以下扫描仪时: Scanner s = new Scanner(System.in); String response = s.next(); Boolean approved = (response.contains(“Y”) || response.contains(“y”)) ? true : false; if (approved){ Do Stuff } s.close(); 我没有得到这样的Elementexceptionexception: java.util.Scanner.next(未知来源)中java.util.Scanner.throwFor(未知来源)中线程“main”java.util.NoSuchElementException中的exception**** 我多次调用s(扫描程序),第二次调用时发生运行时错误。 这是由于关闭扫描仪而不是再次使用它。 我的问题是,每次我使用它时,我都在创建一个新的Scanner实例,为什么我收到runTime错误?

Java – 属性:在运行时向属性文件添加新密钥?

是否可以创建新的属性文件并在运行时添加键和值? 我想在安装我的应用程序时根据用户输入向属性文件添加新键。 我查看了Java Properties类,但它似乎可以为现有键设置值,但无法向属性文件添加新键。

如何在运行时获取方法的JavaDoc?

在运行时很容易获得一个Class a method Name 但 我如何在运行时获取方法的JavaDoc ? 如下例所示 我们的类包含我们的目标方法的JavaDoc public class MyClass { /** * * @param x value of …. * @return result of …. */ public String myMethod(int x) { return “any value”; } } 我们的类有一个主要方法 public class TestJava { public static void main(String[] args) { // get Class method Name at run […]