我正在尝试OutputStream将Process启动者exec()发送到控制台.如何才能做到这一点?
这是一些不完整的代码:
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.io.Reader;
public class RuntimeTests
{
public static void main(String[] args)
{
File path = new File("C:\\Dir\\Dir2");
String command = "cmd /c dir";
Reader rdr = null;
PrintStream prtStrm = System.out;
try
{
Runtime terminal = Runtime.getRuntime();
OutputStream rtm = terminal.exec(command, null, path).getOutputStream();
prtStrm = new PrintStream(rtm);
prtStrm.println();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud) 我从之前成功运行的测试用例中获得以下异常,但现在它抛出此异常:
java.lang.NoSuchMethodError: junit.framework.ComparisonFailure.getExpected()Ljava/lang/String;
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestListener.testFailure(JUnit4TestListener.java:63)
at org.junit.runner.notification.RunNotifier$4.notifyListener(RunNotifier.java:100)
at org.junit.runner.notification.RunNotifier$SafeNotifier.run(RunNotifier.java:41)
at org.junit.runner.notification.RunNotifier.fireTestFailure(RunNotifier.java:97)
at org.junit.internal.runners.JUnit38ClassRunner$OldTestClassAdaptingListener.addError(JUnit38ClassRunner.java:41)
at org.junit.internal.runners.JUnit38ClassRunner$OldTestClassAdaptingListener.addFailure(JUnit38ClassRunner.java:64)
at junit.framework.TestResult.addFailure(TestResult.java:46)
at junit.framework.TestResult.runProtected(TestResult.java:127)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Run Code Online (Sandbox Code Playgroud)
谁知道是什么原因导致的?这似乎是JUnit运行器的内部问题.
在java中是否有非阻塞文件读取API?如果没有,用C++构建一个并通过JNI从Java应用程序调用它是否明智?
据我所知,从EJB中生成线程是非法的,因为它可能会干扰EJB的生命周期.但是,使用JDK中的预定义Java类是非法的,它在内部生成并处理EJB中的Executor等线程,特别是MDB?
有没有办法从POJO中检索会话?或者最终从POJO中检索bean.
澄清:
基本上我是从servlet创建一个bean,我需要从Web容器外部(从POJO)访问该bean的属性.我无法将请求传递给pojo; 并且需要请求来检索会话.
更具体地说,我有一个Web应用程序,它使用Cactus框架从Web界面运行JUnit测试.但是,调用JUnit测试运行器的servlet是在jar中编译的; 我添加了额外的下拉菜单来更改JUnit测试将从中读取的设置以在不同环境(WLI集群)之间切换,因此,如果已经编译了运行器servlet,我无法修改它以处理来自多个环境的额外参数.我已经尝试过写入.dat文件的持久化方法,JUnit测试将通过Reader类读取该文件; 我也尝试过最终无法通过JUnit测试访问的bean方法.
我正在编写一个类,通过比较每个文件的字节数组来比较两个目录的文件.然而,我没有得到预期的结果; 相同的文件未被解析为相同的文件.
第一个问题:
匹配文件Byte [] with equals()使用匹配文件解析为false(仅检查一个文件以避免可能的索引错位问题;检查仍然解析为false.).
第二个问题:
当使用Vector的containsAll()来检查Byte []的两个Vector是否匹配时(每个目录有一个Vector,每个文件有一个Byte []),即使是相同的目录,这个检查结果为false(此检查已从下面的代码中删除.) .那么我对齐两个向量的方式有问题吗?(我已经使用两个目录检查了这一点,其中匹配的文件以相同的顺序加载到匹配的indeces中;这仍然导致Vector不匹配).
第三个问题:
当检查目录中存在子目录时,将抛出未找到文件的异常,表明访问被拒绝.为什么会这样?我怎么能绕过这个呢?我不想检查子目录中包含的文件,但我正在设计代码,以便最终用户不必担心被比较目录的子目录.这只有在存在子目录时才会发生,当被检查的目录中没有子目录时,它可以正常工作.
示例异常:
Byte reading error!
Byte reading error!
java.io.FileNotFoundException: C:\Dir1\Dir2\Dir3\Dir4\SubDir (Access is denied)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at tools.filesystem.filecomparison.FileComparator.getBytes(FileComparator.java:166)
at tools.filesystem.filecomparison.FileComparator.main(FileComparator.java:102)
java.io.FileNotFoundException: C:\Dir1\Dir2\Dir3\Dir4\SubDir Files (Access is denied)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at tools.filesystem.filecomparison.FileComparator.getBytes(FileComparator.java:166)
at tools.filesystem.filecomparison.FileComparator.main(FileComparator.java:111)
Run Code Online (Sandbox Code Playgroud)
这是代码:
package tools.filesystem.filecomparison;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;
import java.util.Vector;
public class FileComparator
{
public static void main(String[] args)
{
String workingDir1 = …Run Code Online (Sandbox Code Playgroud) 是否有一个更好的包或外部库,比一个javax.swing类似于本机Windows的外观和感觉做得更好?我希望我的Java GUI类似于我使用C#和.NET框架创建的表单.谢谢.
我创建了一个RESTful WCF Web服务,返回的内容是XML,JSON,纯文本等是否自动包装在根XML元素中:
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">.....content.....</string>
这是标准行为吗?还有一个设置,可以关闭它?
我试图想出一个方法的设计,该方法将另一个方法作为参数并检索传递的方法的参数值.如何才能做到这一点?我尝试过使用java.lang.reflect.*但似乎无法找到支持此功能的API.
java ×8
.net ×1
bytearray ×1
c++ ×1
comparison ×1
ejb ×1
filesystems ×1
io ×1
java-ee ×1
javabeans ×1
jsp ×1
junit ×1
printstream ×1
reflection ×1
rest ×1
runtime ×1
runtime.exec ×1
servlets ×1
session ×1
stream ×1
swing ×1
unit-testing ×1
wcf ×1