假设我有一个给出一个众所周知的包名和类的应用程序,我需要反射性地加载该类并从中调用一些方法.假设这个类在另一个java jar("库")中可用.
到目前为止,在java 9之前,由于类路径中的所有类都可用,因此可以直接实现此目的.
但是,对于Java 9,如果应用程序"module"不需要"library"包,则无法访问库类.
如何使用模块化罐子实现相同的行为?
例:
这是我的申请:
// This is defined in ReflectionApp.jar
// ReflectionApp
// ??? src
// ??? module-info.java
// ??? org
// ??? reflection
// ??? app
// ??? ReflectionApp.java
//
package org.reflection.app;
import java.lang.reflect.Method;
public class ReflectionApp {
private static final String PACKAGE = "org.reflection.lib";
private static final String CLASS = "ReflectiveClass";
private static final String METHOD = "doSomeWork";
public static void main(String[] args) throws Exception {
// This will not work using java9 …Run Code Online (Sandbox Code Playgroud) 这是我的第一个 NextJs 应用程序,我正在使用 serverActions 实验功能来管理表单提交并通过服务器端进行处理。
这是我的代码:
import { redirect } from "next/navigation";
import { cookies } from 'next/headers'
import { authService } from "@/services";
async function logoutUser() {
"use server"
authService.logout();
cookies().delete('currentUser');
redirect('/');
}
export default () => {
return <>
<form action={logoutUser} className="flex flex-col gap-3">
<button className="btn btn-primary normal-case w-full" type="submit">Logout</button>
</form>
</>
}
Run Code Online (Sandbox Code Playgroud)
这里的想法是我想在用户注销后重定向回主页。
但是,每当代码执行时,我都会收到以下错误:
failed to get redirect response TypeError: fetch failed
at Object.fetch (node:internal/deps/undici/undici:11576:11) {
cause: RequestContentLengthMismatchError: Request body length does not match content-length header
at …Run Code Online (Sandbox Code Playgroud) 我需要从图像中删除元数据,但当图像太大时,我会遇到 OOM。现在我正在使用 ImageIO 来实现这一点。
BufferedImage image = ImageIO.read(new File("image.jpg"));
ImageIO.write(image, "jpg", new File("image.jpg"));
Run Code Online (Sandbox Code Playgroud)
问题是ImageIO.read(...)会将整个文件读入内存,当我处理太大的图像时,这会导致 OutOfMemory 。
我可以尝试使用 CommonsImaging ( https://commons.apache.org/proper/commons-imaging/sampleusage.html),但看起来它只支持 JPEG(ExifRewriter 类)。
更改虚拟机的内存配置不是一个选项,我需要支持的不仅仅是 JPEG 文件。
有什么想法可以在不导致内存不足的情况下做到这一点吗?
我想知道用户何时登录并从自定义模块中的ejabberd会话中注销,而不更改ejabberd代码.
我需要这个,因为我必须在用户登录时执行一些操作并清理我在用户注销时执行的操作.此外,我需要能够在某些情况下注销用户.
那么,有没有办法扩展一些模块来获得这些功能?我还在寻找一些可以帮助我的文档.
我有两个独立的应用程序,一个用Java编写,另一个用Erlang编写.两个应用程序都以String格式相互发送消息,这些消息在Java应用程序中加密,需要在Erlang应用程序中解密.
问题是这样的:我正在使用RSA公钥/私钥来进行加密/解密.
如果我加密数据并在我的Erlang代码中解密所有内容,一切都很好.但是,我无法解密来自我的java端点的字符串.
这是我正在做的一个简单的测试:
PrivKey = "-----BEGIN RSA PRIVATE KEY----- ...",
% Data is the string I receive from Java
Data = "s013aA/SGN2iGYEbEIXXKvJiipqisRVfVEDneL8npRgThTHxTnYZESzVfCF463phPZyo5aOozisU7pwDdGKXgY8aqYZC+a3uES5muTb2RrzJ17yYku+g4S44vgIwZ9EyustZafNVGEYfgbWOYaPP/q5k683uR+MRHVqp6UbqMok=",
[PrivEntry] = public_key:pem_decode(list_to_binary(PrivKey)),
Priv = public_key:pem_entry_decode(PrivEntry),
BinData = iolist_to_binary(Data),
public_key:decrypt_private(Data, Priv).
Run Code Online (Sandbox Code Playgroud)
执行此代码会生成如下错误:
** exception error: decrypt_failed
Run Code Online (Sandbox Code Playgroud)
我认为问题是BinData的格式,但我找不到任何地方说我如何编码一个字符串来传递给decrypt_private函数.
有谁知道怎么做?这看起来很简单,但是我花了很多时间才弄明白.
谢谢.
erlang ×2
java ×2
ejabberd ×1
encryption ×1
java-9 ×1
next.js ×1
reactjs ×1
reflection ×1
rsa ×1