小编Her*_*eri的帖子

使用expdp备份数据库

当我使用此语句备份oracle时:

EXPDP userid=scott/tiger@orcl directory=DATA_PUMP_DIR dumpfile=%filename%.DMP
Run Code Online (Sandbox Code Playgroud)

它有错误:

Ora-39002:The operation is invalid
Ora-3970:can not open the log file
Ora-39087:directory name DATA_PUMP_DIR is invalid

当我跑:

select * from dba_directories;
Run Code Online (Sandbox Code Playgroud)

DATA_PUMP_DIR是

D:\app\Administrator\admin\orcl\dpdump\
Run Code Online (Sandbox Code Playgroud)

更重要的是,我自己创建了目录.它仍然提供相同的错误,我非常确定目录存在.

oracle backup

9
推荐指数
1
解决办法
1万
查看次数

静态成员中的通用参数声明

为什么不允许定义这样的静态成员:

private static final <T extends Object> Map<Class<T>, BiFunction<T, T, Boolean>> SPECIFIC_HANDLERS = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)

相反,它只允许使用未指定的:

private static final Map<Class<?>, BiFunction<?, ?, Boolean>> SPECIFIC_HANDLERS = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)

是否有一个解决方法,以便我可以定义BiFunction的两个参数必须是相同的类型,并且Map的键必须是这些参数的类类型?

更新以澄清(因为@Mena的建议不适合我):

我想要一个通用equals helper的数组equals方法的映射.通用助手正式接收两个对象.如果它们是数组,我必须将它传递给一个重载的Arrays.equals()方法.我想找到正确的方法(例1):

private static final Map<Class<?>, BiFunction<?, ?, Boolean>> ARRAY_EQUALS_HANDLER = new HashMap<>();

static
{
    ARRAY_EQUALS_HANDLER.put( Object[].class,  (l, r) -> Arrays.equals( (Object[])  l, (Object[])  r ));
    ARRAY_EQUALS_HANDLER.put( boolean[].class, (l, r) -> Arrays.equals( (boolean[]) l, (boolean[]) r ));
    ....
}
Run Code Online (Sandbox Code Playgroud)

然后使用它像:

boolean equal = ARRAY_EQUALS_HANDLER.get( anObj1.getClass()).apply(anObj1, anObj2);
Run Code Online (Sandbox Code Playgroud)

该构造(根据Mena)甚至不编译:

private static <T extends …
Run Code Online (Sandbox Code Playgroud)

java generics

7
推荐指数
1
解决办法
407
查看次数

为什么Chrome Java更新程序在64位计算机上安装全局32位JRE?

最近我通过chrome(版本38.0.2125.104 m)提供的更新过程更新了JRE("你的java已经过时,需要更新"或类似).结果是我的日食月神(64位)不再执行了.仔细观察我发现的背景:chrome java updater(notbeene从Oracle站点启动)在env var PATH前面添加了C:\ ProgramData\Oracle\Java\javapath.此文件夹包含三个符号链接,指向(x86)程序文件夹中最新的java 8 JRE安装 - >因此为32位java JRE.

显然,Oracle(用Java8)取代了旧技术 - 在system32(64位应用程序)中使用java启动器.SysWOW64(适用于32位应用程序) - 采用这种新方法.但是:在这些位置仍然存在"旧"java.exe/javaw.exe/javaws.exe,特别是实际版本(与新符号链接相同的文件日期).

我的问题是:a)在64位机器上安装全局32位JRE的原因是什么?b)有没有比仅删除新路径条目更好的方法来解决问题?

java eclipse oracle 32bit-64bit

6
推荐指数
0
解决办法
943
查看次数

从 xv6 中的进程关闭 qemu

我最近开始学习 xv6 并试图在 xv6 中实现关闭机制,我能够终止所有正常运行的进程并等待其中一些完成然后终止它们。但是我无法从关机过程中关闭 qemu。

有人可以建议如何从 aa xv6 进程关闭 qemu 吗?

我用谷歌搜索,发现有人使用了“outb”和“outw”命令,但它们都不起作用。

operating-system shutdown qemu process xv6

3
推荐指数
3
解决办法
4510
查看次数