我正在尝试使用smb URL访问本地计算机上的文件夹.我的项目使用的是jar:commons-vfs2-2.0.jar和jcifs-1.3.17.jar(以及所有其他必需的jar).其中的代码是:
public static void main(String[] args) throws FileSystemException {
jcifs.Config.registerSmbURLHandler();
StaticUserAuthenticator auth = new StaticUserAuthenticator(<domain>,<user>,<password>);
FileSystemOptions opts = new FileSystemOptions();
DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, auth);
FileSystemManager fs = VFS.getManager();
FileObject smbFile = fs.resolveFile("smb://10.0.2.2/TimeOut/");
System.out.println(smbFile.exists() + " " + smbFile.getContent().getLastModifiedTime());
}
Run Code Online (Sandbox Code Playgroud)
我收到了例外:
线程"main"中的异常org.apache.commons.vfs2.FileSystemException:无法确定文件类型"smb://10.0.2.2/TimeOut".at org.apache.commons.vfs2.provider.AbstractFileObject.getType(AbstractFileObject.java:505)位于com.newsway.tests.VfsTest的org.apache.commons.vfs2.provider.AbstractFileObject.exists(AbstractFileObject.java:477) .main(VfsTest.java:23)引起:jcifs.smb.SmbAuthException:登录失败:帐户当前已禁用.在jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:546)jcifs.smb.SmbTransport.send(SmbTransport.java:663)jcifs.smb.SmbSession.sessionSetup(SmbSession.java:390)jcifs.smb. SmbSession.send(SmbSession.java:218)在jcifs.smb.SmbTree.treeConnect(SmbTree.java:176)jcifs.smb.SmbFile.doConnect(SmbFile.java:911)jcifs.smb.SmbFile.connect(SmbFile) .java:954)jcifs.smb.SmbFile.open(SmbFile.java:880)jcifs.smb.SmbFile.open(SmbFile.java:972)jcifs.smb.SmbFile.open(SmbFile.java:1006)在jcifs.smb.SmbFileInputStream.(SmbFileInputStream.java:73)jcifs.smb.SmbFileInputStream.(SmbFileInputStream.java:65)at jcifs.smb.SmbFile.getInputStream(SmbFile.java:2844)at org.apache.commons. vfs2.provider.url.UrlFileObject.doGetType(UrlFileObject.java:89)在org.apache.commons.vfs2.provider.AbstractFileObject.getType(AbstractFileObject.java:496)
据我所知,相关部分是:登录失败:帐户目前已禁用.
尽管我的用户/密码/域很好,但我正在完成VFS文档页面中定义的内容.
我错过了什么?
我有一个带有a的番石榴缓存CacheLoader.我在一个线程中跟踪一个外部条件,如果发生这种情况,我想refresh()异步所有条目.出于这个原因,我不使用,invalidateAll()因为下一个get()必须等待加载成功.
相反,我遍历缓存中包含的密钥和refresh(k)所有密钥,因为我找不到refreshAll()方法.这是代码(但与问题无关):
Set<ResourceLoaderKey> keys = resourceLoaderCache.asMap().keySet();
for(ResourceLoaderKey k : keys)
{
resourceLoaderCache.refresh(k);
}
Run Code Online (Sandbox Code Playgroud)
我现在的问题是,reload()在CacheLoader中可能会检测到资源实际上不再可用.目前,reload()抛出一个适用于该get()案例的ResourceNotFound异常.但它不适用于这种refresh()情况,因为只要reload()失败就会提供旧值.
我现在可以在加载/重新加载方法中捕获未找到的异常并以某种方式使条目无效,但我想知道是否有正式的方法(返回null或null将被记录为警告并被忽略)?能够删除键/缺席值而不是保留占位符对象会很好.
我正在开发一个可以从 tar.gz 文件中获取信息的软件,我正在使用 Apache commons-compress 库。但我收到以下错误:
Caused by: java.lang.IllegalArgumentException: Invalid byte 4 at offset 0 in 'O?!?C' len=8
at org.apache.commons.compress.archivers.tar.TarUtils.parseOctal(TarUtils.java:134)
at org.apache.commons.compress.archivers.tar.TarUtils.parseOctalOrBinary(TarUtils.java:166)
at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:953)
at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:940)
at org.apache.commons.compress.archivers.tar.TarArchiveEntry.<init>(TarArchiveEntry.java:324)
at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:274)
... 2 more
Run Code Online (Sandbox Code Playgroud)
使用的示例 tar.gz 文件是 eclipse-jee-luna-SR1-linux-gtk-x86_64.tar.gz
这是使用 lib 的类:
public class TarGzBuildAdapter extends BuildAdapter {
public TarGzBuildAdapter(File build) {
super(build);
}
@Override
public List<ArtifactInfo> getArtifactInfos() throws IOException {
TarArchiveInputStream tarArchiveInputStream = new TarArchiveInputStream(
new FileInputStream(this.build));
TarArchiveEntry tarArchiveEntry;
List<ArtifactInfo> artifactInfos = new LinkedList<ArtifactInfo>();
while ((tarArchiveEntry = tarArchiveInputStream.getNextTarEntry()) != null) { …Run Code Online (Sandbox Code Playgroud) 无法解决问题:\我应该如何记录第二个参数"说"?因为SonarQube一次又一次地问我这件事.
public class Dogs {
private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(Dogs.class);
private final String name;
private final String says;
/**
* The Dogs class.
*
* @param name
* says. // here the problem
*
*/
public Dogs(final String name, final String says) {
this.name = name;
this.says = says;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在学习使用课程,我的部分任务是制作这个Car课程.我在第6行遇到错误,我尝试打印类中方法的结果.我认为这意味着我正在尝试打印一些不存在的东西,我怀疑这是里程方法.我尝试将其更改为返回里程,但这也无效.有任何想法吗?
public class TestCar {
public static final void main(String args[]) {
Car c = new Car ();
c.moveForward(4);
System.out.println ("The car went" + c.mileage() + "miles."); // <-- L6
}
}
class Car {
public int miles = 2000;
public void moveForward(int mf) {
if (miles != 2000) {
miles += mf;
}
}
public void mileage() {
System.out.print(miles);
}
}
Run Code Online (Sandbox Code Playgroud) 以下代码(通过JNLP API检索Java Web Start客户端应用程序的基本URL)在Java 8中工作,但在(模块化)Java 9运行时中执行时失败:
Class<?> mclass = Class.forName("javax.jnlp.ServiceManager");
Method lookup = mclass.getMethod("lookup", new Class[]{String.class});
Object basicSvc = lookup.invoke(null, new Object[{"javax.jnlp.BasicService"});
Class<?> sclass = basicSvc.getClass();
Method getCodeBase = sclass.getMethod("getCodeBase", (Class[])null);
URL codebase = (URL)getCodeBase.invoke(basicSvc, (Object[])null); // throws
Run Code Online (Sandbox Code Playgroud)
结果是
java.lang.IllegalAccessException: class app.App cannot access class
com.sun.jnlp.BasicServiceImpl (in module jdk.javaws) because module
jdk.javaws does not export com.sun.jnlp to unnamed module @7202a0fa
at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException
at java.base/java.lang.reflect.AccessibleObject.checkAccess
at java.base/java.lang.reflect.Method.invoke
at app.App.init
Run Code Online (Sandbox Code Playgroud)
怎么解决这个问题?
我需要以这种格式在此列中保存日期时间,如果我从GAMES中选择TIME,则会以此格式显示.但这是错误的.你能帮助我吗 ?
create table GAMES (
CIS_HRY INTEGER not null,
NAZEV VARCHAR2(30) not null,
Date DATE NOT NULL FORMAT 'YYYY-MM-DD',
TIME DATE NOT NULL FORMAT 'HH24: MI: SS',
POPIS CLOB,
constraint PK_GAMES primary key (CIS_HRY)
);
Run Code Online (Sandbox Code Playgroud) 我收到"无效选择"错误.
ubuntu@server:/home/foo$ aws glacier
usage: aws [options] <command> <subcommand> [parameters]
aws: error: argument command: Invalid choice, valid choices are:
autoscaling | cloudformation
cloudfront | cloudsearch
cloudtrail | cloudwatch
datapipeline | directconnect
dynamodb | ec2
elasticache | elasticbeanstalk
elastictranscoder | elb
emr | iam
importexport | kinesis
opsworks | rds
redshift | route53
ses | sns
sqs | storagegateway
sts | support
swf | s3api
s3 | configure
help
ubuntu@server:/home/foo$ aws --version
aws-cli/1.2.9 Python/3.4.0 Linux/3.13.0-65-generic
Run Code Online (Sandbox Code Playgroud)
以前我使用以下方法安装它: ubuntu@server:/home/foo$ sudo apt-get install awscli …
参见下面的两个代码,让我知道为什么它像Java语言那样打印
BufferedReader br = new BufferedReader(new FileReader("file path"));
while(br.readLine()!= null) {
System.out.println(br.readLine());
}
br.close();
Run Code Online (Sandbox Code Playgroud)
此代码不能打印完整的文件内容,但是,如果我使用下面的代码,它将打印文件的完整内容..请解释
BufferedReader br = new BufferedReader(new FileReader("filepath"));
String str;
while((str=br.readLine())!= null) {
System.out.println(str);
}
br.close();
Run Code Online (Sandbox Code Playgroud)