我有这个小测试程序跟踪PID的创建和关闭.我正在调查我的程序已找到的问题,并想问你这个问题,以便更好地了解正在发生的事情.
当一个Windows进程启动时,它会获得一个PID,但是当进程关闭时,PID是否会退役(就像一个明星篮球运动员的球衣号码),或者是否有可能在该发布的情况下创建一个新的,完全不相关的进程PID?
谢谢
我正在研究这个复杂的(对我来说......)自动化,其中一部分是从另一个开始(未调用)的批处理脚本。
现在,这一切都在进行中,我希望能够用一个简单的指令替换 Started 批处理脚本,该指令将执行以下操作,以便启动脚本在启动子脚本后具有:
%ERRORLEVEL% EQU 1(然后我可以处理错误处理方面和测试内容)
但也有一些不错的东西不会使系统处于不自然的状态(我可能会根据这种糟糕的状态编写脚本,并想知道为什么事情不会发生)当我把它全部组装起来时就行不通了)。
所以,“格式 C -q”不起作用!;)
谢谢
我已经找到的所有文档都提到了“ jre / lib / ext”文件夹,但是在我的JRE 13安装中不存在。
我猜在Java 8(可以在jre / lib / ext中看到罐子)和Java 13之间的某个地方,它们移动了,但是我无法确定何时以及如何完成。
有人可以根据扩展类当前所在的位置来详细说明新JRE的情况吗?
假设我们有一个像这样的文件:
one
two
three
Run Code Online (Sandbox Code Playgroud)
(但是这个文件被加密了)
我的加密方法以 byte[] 类型返回内存中的整个文件。
我知道字节数组没有“行”的概念,这是扫描仪(例如)可以拥有的概念。
我想遍历每一行,将其转换为字符串并对其执行操作,但我不知道如何:
另外:我是否需要考虑文件可能组成的不同操作系统?我知道 Windows 和 Linux 中的新行之间存在一些差异,我不希望我的方法仅适用于一种格式。
编辑:根据此处答案的一些提示,我能够编写一些代码来完成工作。我仍然想知道这段代码是否值得保留,或者我正在做的事情将来可能会失败:
byte[] decryptedBytes = doMyCrypto(fileName, accessKey);
ByteArrayInputStream byteArrInStrm = new ByteArrayInputStream(decryptedBytes);
InputStreamReader inStrmReader = new InputStreamReader(byteArrInStrm);
BufferedReader buffReader = new BufferedReader(inStrmReader);
String delimRegex = ",";
String line;
String[] values = null;
while ((line = buffReader.readLine()) != null) {
values = line.split(delimRegex);
if (Objects.equals(values[0], tableKey)) {
return values;
}
}
System.out.println(String.format("No entry with key %s in %s", tableKey, fileName));
return values;
Run Code Online (Sandbox Code Playgroud)
特别是,我被建议显式设置编码,但我无法确切地看到在哪里?
我当前的 TCP 客户端正在使用org.apache.http.conn.ssl.SSLSocketFactory
我正在迁移到构建套接字import javax.net.ssl.SSLSocketFactory;
但是,我不确定如何加载存储在我已经拥有的 .p12 文件中的客户端证书的私钥,作为新 SSLSocketFactory 的上下文?
这是我现有的代码,使用已弃用的 SSLSocketFactory:
import org.apache.http.ssl.SSLContexts;
import org.apache.http.conn.ssl.SSLSocketFactory;
String ksPassphrase = "myKSpass";
String pkPassphrase = "myPKpass";
// Get a keystore instance of type PKCS12:
KeyStore keystore = KeyStore.getInstance("PKCS12");
// Load keystore file and password:
keystore.load(new FileInputStream("myFile.p12"), ksPassphrase.toCharArray());
// Create HTTPS connection socket factory context:
SSLContext context = SSLContexts.custom()
.loadKeyMaterial(keystore, pkPassphrase.toCharArray())
.build();
SSLSocketFactory sslScktFactory = new SSLSocketFactory(context);
Run Code Online (Sandbox Code Playgroud)
这是我可以从文档中管理的最佳代码:
import javax.net.ssl.*;
// not sure if this is the pass to KS or …Run Code Online (Sandbox Code Playgroud) 我定义了自己的 JUnit 注释:
@ParameterizedTest
@MethodSource("myorg.qa.ccrtesting.DataProviders#standardDataProvider")
@Tags({@Tag("ccr"), @Tag("standard")})
public @interface CcrStandardTest {
}
Run Code Online (Sandbox Code Playgroud)
然后,我可以在测试中使用该注释:
@CcrStandardTest
public void E0010_contact_standard (String testData) {
...
Run Code Online (Sandbox Code Playgroud)
-eamyorg.qa.ccrtesting.ccrstandardtests.CcrStanConTest- 这是 IDE 建议的(并经过验证指向正确的类,其中包含我的原型测试方法)然而,这会导致:jupiter.api.extension.ParameterResolutionException: No ParameterResolver registered for parameter [java.lang.String arg0] in method [public void...
我尝试String testData从测试方法签名中删除,但 JUnit 没有执行任何测试:No tests found
当我在@Test原型测试方法上方添加时,它会执行但是:
@CcrStandardTest被应用suspicious combination @Test and parameterized source @ParameterizedTestimply @Test,只是不确定为什么 IDE 能够找到自定义注释,而 JUnit 却不能?)(使用 OpenJDK-13 和 JUnit5-Jupiter)
问题是我的单元测试每个都使用了一个不小的 JUnit 注释系统,如下所示:
@ParameterizedTest
@MethodSource("myorg.ccrtest.testlogic.DataProviders#standardDataProvider")
@Tags({@Tag("ccr"), @Tag("standard")})
Run Code Online (Sandbox Code Playgroud)
这使得测试编写有点乏味,测试代码有点长,当然,当需要更改时,这是一件苦差事!
想知道我是否可以创建自己的 JUnit annotation: @CcrStandardTest,这意味着上面的所有注释?
我还尝试将类定义中的注释向上移动(希望它们随后适用于类的所有方法),但编译器说不:“@ParameterizedTest 不适用于类型”
我有一个小程序,它依赖于从本地网络接口获取一些信息。然后,我需要添加一些功能,这又需要这些信息。我不想碰我经过测试和高度使用的方法。因此,迫于时间的压力,我决定重用该方法,有效地将 NetworkInterface Enumeration 转换为 ArrayList两次(这不是我最自豪的编码时刻!)。
经过测试,我发现它真的不起作用!
动作顺序:
我注意到,在第二次翻译中,结果为零!在调试中,我注意到我的枚举有一个字段“i”。该字段:第一次,它等于 55(我的 IF 的计数),第二次,它等于 0...
我提供了一小段代码,为了您的调试乐趣,应该重现它(我使用的是 Java 8):
import java.net.NetworkInterface;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
public class CollectionsListDemo {
public static void main(String[] args) {
ArrayList<NetworkInterface> netFacesArList1;
ArrayList<NetworkInterface> netFacesArList2;
try {
Enumeration<NetworkInterface> netFaces = NetworkInterface.getNetworkInterfaces();
netFacesArList1 = Collections.list(netFaces);
netFacesArList2 = Collections.list(netFaces);
} catch (Exception e) {
throw new RuntimeException("whatever");
}
System.out.println(netFacesArList1.size()); // 55, …Run Code Online (Sandbox Code Playgroud) java ×6
annotations ×2
junit5 ×2
reflection ×2
arraylist ×1
arrays ×1
batch-file ×1
classloader ×1
classloading ×1
collections ×1
iterable ×1
java-13 ×1
keystore ×1
line ×1
list ×1
loops ×1
newline ×1
pid ×1
process ×1
recycle ×1
scripting ×1
ssl ×1
testing ×1
unit-testing ×1
windows ×1