- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我制作了一个小型 Java 应用程序,可将目录从 CD 复制到 HD。我使用 Windows Vista 制作了该程序并且它可以运行,但是当我在 Windows 7 中运行它时,它失败了。
主要问题是需要在 Program Files 文件夹中创建一个文件夹。
我使用了 DestinationFolder.mkdirs(),但创建失败
这是java代码:
public void Install_App()
{
File srcFolder = new File(System.getProperty("user.dir") + "\\WINDOWS");
File destFolder = new File("C:\\Program Files\\test1\\test2\\");
if (srcFolder.exists())
{
try{
if(!destFolder.exists())
{
destFolder.mkdirs();
}
copyFolder(srcFolder,destFolder,1);
}catch(IOException e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, e.toString());
error=true;
System.exit(0);
}
} else
{
JOptionPane.showMessageDialog(null, "Error. Source Directory doesn't exist.");
error=true;
};
}
...然后有一个 copyfolder 函数,它使用输入流和输出流复制文件。
问题是从未创建该文件夹。我的登录用户是管理员。正如我所说,它在 Vista 中有效。
你能帮帮我吗?
谢谢。
问题是我用 java 创建了这个应用程序以在 Windows 和 Mac 上运行它。在 Windows 中,它应该像这样自动运行和 autorun.inf:
[autorun]
OPEN=java_app.bat
然后这个 bat 将运行这个:
@echo off
start javaw -jar "java_app.jar"
EXIT
那么我如何修改它以自动以管理员身份运行它呢?这个 Java 应用程序的主要思想是简化安装和使用外部应用程序的过程,无论您使用的是哪种操作系统。如果我必须要求用户以管理员身份运行它,它就会失去意义(使用起来很简单)。
最佳答案
我猜您正在以普通用户身份运行代码。
默认情况下,UAC 阻止以普通用户身份写入 Program Files
目录在 Windows 7 下。这就是您的 Java 代码无法创建目录的原因。
尝试从特权 shell 运行您的 Java 代码。您可以通过 开始 > [键入 cmd] > [右键单击“cmd.exe”并选择“以管理员身份运行”]
。现在,在管理员命令提示符下使用 java -jar
或 java -classpath
运行编译后的代码。它现在应该可以工作了。
自动化 UAC 提示:
您需要按照 [ 1 中的详细描述创建一个 list 文件。 ] 和 [ 2 ] 让 Windows/UAC 知道您的程序需要提升权限。
同时检查这个 [ 3 ] 名为 elevate
的实用程序,它会在处理 UAC 权限请求时将您的程序生成为子进程,所有这些请求都是从父 (elevate
) 程序本身发出的。
[1] [http://msdn.microsoft.com/en-us/library/aa511445.aspx][2]
[2] [http://msdn.microsoft.com/en-us/library/bb756929.aspx][3]
[3] [http://www.wintellect.com/cs/blogs/jrobbins/archive/2007/03/27/elevate-a-process-at-the-command-line-in-vista.aspx][4]
关于java - mkdirs 在 Windows 7 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8257765/
我正在尝试在 Java 中创建一个新目录,但它不起作用。我想知道为什么,因为我首先尝试了 mkdir() ,然后尝试了 mkdirs() ,它应该创建不存在的目录。 我写道: boolean stat
我尝试使用 mkdir 在本地 git 存储库中创建文件夹。它没有用,但是mkdir -p 有效。 为什么? 顺便说一句,我正在使用 Mac 操作系统。我检查了 mkdir -p 的定义。但是我还是不
我一直在关注 Learn Code the Hard Way 的教程,了解如何在 PowerShell 中使用命令行界面。在 this文章中,它告诉我使用命令 mkdir -p i\like\icec
下面是我的 MainActivity.java 代码。根据 toasts 的错误是在创建目录时。 主 Activity .java @Override protected void onActivit
我使用以下代码: final File newFile = new File("/mnt/sdcard/test/"); newFile.mkdir(); // if I use mkdirs() r
我被这个逼疯了: Log.d("STATE", Environment.getExternalStorageState()); File f = new File(Environment.getExt
我正在创建一个应用程序,我需要创建多个文件夹,而且创建文件夹是一步到位的。 要做最优化,然后我意识到 mkdir() 比 system('mkdir path') 快得多; 有谁知道原因吗? 最佳答案
mkdir $2 || echo "I can't create directory $2" && exit 8 大家好,这是我在这里的第一篇文章,请多多关照。 我现在正在制作一个脚本,这一行让我很困
您好,我最近遇到了这个问题,但能够解决它。实际上路径中的拼写错误。我想知道如何正确处理这些错误。也就是说,如果 mkdir 失败,我的程序应该继续执行并且应该安全地返回 false。这是我的代码 tr
我正在尝试在我的程序开始时创建一个日志文件。 如果 /log 目录没有创建目录,我需要检查它是否存在,然后继续创建日志文件。 好吧,我尝试使用 os.Mkdir(以及 os.MkdirAll),但无论
以下代码可与其他 API 一起使用,但 26 public static boolean cretaeDir() { String dir = Environment.getExternalS
尝试在 PHP 中使用 mkdir() 函数时出现此错误。 基本上,我是在我的服务器上创建一个基于 input field 的 HTML 表单中名为 (inPut) 的 sundomain。 现在我正
为什么 file.mkdir 返回 false? Google 指出可能有多种原因(例如安全性、权限、路径名等)。 我的问题: 如何找到返回false的确切原因? 如果安全/权限是一个原因,那么为什么
我找不到答案的简单问题: 使用 os.mkdir("somedir") 比 os.system("mkdir somedir") 或 subprocess.call() 有好处吗,超越代码可移植性?
这个问题与this question无关.我已经看到它了,但它是特定的 Android 4.4.2 问题,因为该代码在其他版本的 Android 上运行良好。 final File path = ne
os.Mkdir 和 syscall.Mkdir 在 Golang 中有相同的 API 系统调用.Mkdir: func Mkdir(path string, mode uint32) (err er
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 要求代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案、它们为什么不起作用以及预期结果。另
这个问题在这里已经有了答案: What is different between makedirs and mkdir of os? (3 个答案) 关闭 9 个月前。 根据 python 3.6
我通过 bash 中的 mkdir 和 python 中的 os.mkdir 使用文件模式创建了目录。他们制作了具有不同权限的目录。 我在命令行中的测试代码如下, $ mkdir -m 0775 aa
给定: MIGRATION_FOLDER=/opt/migration 要么这样: ssh -tt ${REMOTE_SERVER} sudo sh -c "mkdir -p /opt/migrati
我是一名优秀的程序员,十分优秀!