当我使用此语句备份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)
更重要的是,我自己创建了目录.它仍然提供相同的错误,我非常确定目录存在.
为什么不允许定义这样的静态成员:
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) 最近我通过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)有没有比仅删除新路径条目更好的方法来解决问题?
我最近开始学习 xv6 并试图在 xv6 中实现关闭机制,我能够终止所有正常运行的进程并等待其中一些完成然后终止它们。但是我无法从关机过程中关闭 qemu。
有人可以建议如何从 aa xv6 进程关闭 qemu 吗?
我用谷歌搜索,发现有人使用了“outb”和“outw”命令,但它们都不起作用。