对于有点模糊的标题道歉,我无法弄清楚关键字在这里是什么.设置非常简单,我打开图像
ImageIO.read(new File(filename));
Run Code Online (Sandbox Code Playgroud)
这适用于大多数文件,但是对于一个我得到的文件IllegalArgumentException with the detail: "numbers of source Raster bands and source color space components do not match".这个图像是通过wget在有效的Flickr URL上获得的,并且我使用了这种方式获得的其他图像,因此获取图像的方法原则上看起来很合理.我不确定导致异常的是什么.
一个解决方法将是可以接受的 - 我ImageIO特别不喜欢使用,并且图像在视觉上看起来很好.我只需要在没有Java吓坏的情况下阅读它!
这是有问题的图像,如果有任何用处:

我正在构建一个需要用自然英语提供评论的系统.有用的一点是能够以随意的格式表达日期.我正在寻找的基本上是慢性,Natty或这个问题中描述的任务的逆:自然语言日期和时间解析器的java.
这是不是已经完成了?我是否应该尝试将我自己的简单硬连线片段用于对我有意义的日期范围?或者是否有一些聪明的方法来反转现有的解析器来吐出(甚至是乱码)描述日期的句子?
编辑 - 澄清一下,虽然任何类型的输出都很有趣且有用,但我对各种/创造性的输出生成特别感兴趣.即"下周","从现在开始的七天","下周四"和"下周末"都在同一天.
我的应用程序内存不足.为了解决这个问题,我释放了一个将帧缓冲区写入图像的函数中使用的两个非常大的数组.该方法如下所示:
-(UIImage *) glToUIImage {
NSInteger myDataLength = 768 * 1024 * 4;
// allocate array and read pixels into it.
GLubyte *buffer = (GLubyte *) malloc(myDataLength);
glReadPixels(0, 0, 768, 1024, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
// gl renders "upside down" so swap top to bottom into new array.
// there's gotta be a better way, but this works.
GLubyte *buffer2 = (GLubyte *) malloc(myDataLength);
for(int y = 0; y <1024; y++)
{
for(int x = 0; x <768 * 4; x++) …Run Code Online (Sandbox Code Playgroud) 我创建了一个RESTful服务器应用程序,它可以在有用的URL(例如www.site.com/get/someinfo)上提供服务请求.它是在Spring中构建的.
但是,这些访问受密码保护.我现在正在构建一个客户端应用程序,它将连接到此RESTful应用程序并通过URL请求数据.我如何通过凭证?目前,它只是向用户弹出用户/密码框,但我希望用户能够在客户端应用程序的框中键入用户名和密码,并让客户端应用程序在RESTful应用程序时提供凭据.它要求数据.客户端是使用Struts构建的.
干杯
编辑 - 我认为我的问题不够明确.我已经强制使用HTTPS了,我的问题更多,在代码中,当我从www.site.com/get/someinfo请求数据时,如何在提出请求的同时传递我的凭据?
我正在构建一个iPhone/Apple Watch应用程序.在线教程之后,我编写了一些代码来在iOS端(通过ViewController中的viewDidLoad())和watch表(通过InterfaceController中的willActivate())设置会话变量.
当我在模拟器中运行app/s时,从手表向手机发送消息会产生:
错误域= WCErrorDomain代码= 7005"设备未配对." UserInfo = {NSLocalizedDescription =设备未配对.,NSLocalizedRecoverySuggestion =将设备与Watch配对.}
从手机向手表发送消息时产生:
错误域= WCErrorDomain代码= 7006"未安装监视应用程序." UserInfo = {NSLocalizedDescription =未安装Watch应用程序.,NSLocalizedRecoverySuggestion =安装Watch应用程序.}
问题是模拟器报告模拟器设备都是配对的,因此错误7005似乎是错误的,并且手表应用程序显然已安装,因为我可以在手机上的Watch应用程序中看到它,因此错误7006似乎是错误的.这些错误都没有任何意义,Xcode的模拟器是如此易变,我无法分辨链中的问题可能在哪里.有人可以提供任何建议吗?
{"something":"1","mode":"true","number":"1234"}
Run Code Online (Sandbox Code Playgroud)
因为我期待JSON获得406.
它是通过Jersey生成的,它被告知一个方法@Produces JSON.它被Dojo xhrGet接收,它将JSON设置为其handleAs.
编辑 - 为了澄清,我对我评估的代码或类似的代码不感兴趣.问题很简单 - 它是有效的JSON吗?
我一直在寻找使用Java运行时运行外部程序的方法.这很好,例如:
String[] cmd = {"mkdir", "test"};
Runtime.getRuntime().exec(cmd);
Run Code Online (Sandbox Code Playgroud)
按照您的预期创建一个新目录.现在,从Mac中的bash窗口,我可以这样写:
love testgame
Run Code Online (Sandbox Code Playgroud)
在名为testgame的文件夹上运行"Love"游戏引擎.现在,这个工作的原因是因为我把爱"别名"称为爱可执行文件.我有一种感觉,这是下面没有理由不工作:
String[] cmd = {"love", "/Users/mtc06/testgame"};
Runtime.getRuntime().exec(cmd);
Run Code Online (Sandbox Code Playgroud)
这也不是(对于那些想知道的人):
String[] cmd = {"/bin/bash", "love", "/Users/mtc06/testgame"};
Runtime.getRuntime().exec(cmd);
Run Code Online (Sandbox Code Playgroud)
毫无疑问,这可能是我的一些Java白痴,或者与混叠的工作方式发生冲突.我把它交给你尊敬的知识分子,所以!
更新:这也不起作用:
String[] cmd = {"/bin/sh", "/Applications/love", "/Users/michaelcook/Desktop/Playout"};
Runtime.getRuntime().exec(cmd);
Run Code Online (Sandbox Code Playgroud)
我收到的错误是运行时生成的进程的127.无论我在哪里研究它,我都会把它当作"命令未找到".
继这里发布的问题:你能用反射找到包中的所有类吗?我开始使用Reflections库来查找子类给定类型的所有类.从链接的SO问题的答案来看,源代码如下所示:
Reflections ref = new Reflections(new ConfigurationBuilder()
.setScanners(new SubTypesScanner(false /* don't exclude Object.class */), new ResourcesScanner())
.setUrls(ClasspathHelper.forPackage("org.somepackage"))
.filterInputsBy(new FilterBuilder().include(FilterBuilder.prefix("org.somepackage"))));
ref.getSubtypesOf(Object.class);
Run Code Online (Sandbox Code Playgroud)
然而,在暂时使用这段代码之后,我刚刚发现它只会在这个包中找到继承其他类型的类.它不会找到从外部定义的类子类化的类,比如来自另一个用户定义的类.
我不知道如何使用Reflections库来解决这个问题.我希望所有将其包声明为'org.somepackage'的类,无论它们的超类型是什么.有帮助吗?
今天我注册了github,并使用这里描述的技术将现有的文件系统转换为git repo:
最重要的是(我认为)它涉及这一行:
git --bare init
然后我按照github.com的其余设置教程(这是其中的一部分)完成了.现有的文件系统在Dropbox中,所以我在另外两台使用文件系统的机器上执行相同的设置(现在是一个git repo).
今晚我试图让JGit添加一个文件,提交然后推送它.这是代码的要点,直到它破坏为止:
FileRepositoryBuilder builder = new FileRepositoryBuilder();
Repository repository = builder.setGitDir(new File("path/to/my/repo"))
.readEnvironment() // scan environment GIT_* variables
.findGitDir() // scan up the file system tree
.build();
Git git = new Git(repository);
AddCommand add = git.add();
try{
add.addFilepattern("PlayState.as").call();`
Run Code Online (Sandbox Code Playgroud)
顺便提一下,这基本上是从JGit教程逐字逐句采用的.它在最后引用的行引发异常并指出:
org.eclipse.jgit.errors.NoWorkTreeException: Bare Repository has neither a working tree, nor an index
at org.eclipse.jgit.lib.Repository.getIndexFile(Repository.java:838)
at org.eclipse.jgit.lib.Repository.lockDirCache(Repository.java:886)
at org.eclipse.jgit.api.AddCommand.call(AddCommand.java:136)
at flipa.FLIPAGame.writeToFlixel(FLIPAGame.java:77)
at flipa.FLIPAGame.main(FLIPAGame.java:58)
Run Code Online (Sandbox Code Playgroud)
现在,我并不是说声称这是不合理的,因为真相被告知我不是版本控制的最好朋友.我得到一个简单的回购是一个只有git in而没有其他文件,但在我看来,现在它有文件.我已经使用终端中的git手动添加,提交并推送到github.所以我不能立即明白为什么它甚至不会认出回购.
任何接受者?
编辑 - 为了澄清,如果有人可以提出另一个解决方案,杀掉这个回购并不是什么大不了的事.我想要一个git repo来使用我的dropbox中的文件系统,并且能够通过Java提交github.
我在Java中构建了一个基于Selector的系统,可以接受多个客户端.它有一个在OP_ACCEPT下注册的ServerSocketChannel,它接受()s传入连接并再次向选择器注册生成的SocketChannel.这是位:
ServerSocketChannel insock = ServerSocketChannel.open();
insock.configureBlocking(false);
insock.socket().bind(new InetSocketAddress(6789));
Selector sel = Selector.open();
SelectionKey joinchannel = insock.register(sel, SelectionKey.OP_ACCEPT);
System.out.println("Ready to accept incoming connections.");
while (true) {
int ready = sel.selectNow();
if (ready == 0)
continue;
Set<SelectionKey> selectedKeys = sel.selectedKeys();
Iterator<SelectionKey> keyIterator = selectedKeys.iterator();
while (keyIterator.hasNext()) {
SelectionKey key = keyIterator.next();
if(key.isAcceptable()){
SocketChannel newConnection = insock.accept();
System.out.println("New client "+newConnection+" connected.");
newConnection.configureBlocking(false);
newConnection.register(sel, SelectionKey.OP_READ).attach(new DGPlayer());
}
Run Code Online (Sandbox Code Playgroud)
如果我为OP_READ注册新的SocketChannel,这可以正常工作.检查isReadable()成功,读取数据.这是位:
else if(key.isReadable()){
ByteBuffer buf = ByteBuffer.allocate(1024);
int trans = ((SocketChannel)key.channel()).read(buf); buf.flip();
byte[] ba = new byte[buf.remaining()]; …Run Code Online (Sandbox Code Playgroud) 我可以舒适地将场景渲染到纹理并将该纹理映射回帧缓冲区以进行屏幕显示.但是,如果我想将纹理重新映射到自身上以使其模糊(例如,在新位置的四分之一不透明度),该怎么办?那可能吗?
我这样做的方法就是启用纹理:
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, color_tex);
Run Code Online (Sandbox Code Playgroud)
然后借鉴它:
glVertexPointer(2, GL_FLOAT, 0, sv);
glTexCoordPointer(2, GL_FLOAT, 0, tcb1);
glColor4f (1.0f,1.0f,1.0f,0.25f);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
Run Code Online (Sandbox Code Playgroud)
(显然省略了一些代码)
这个想法有什么明显的错误吗?我是个白痴吗?
一个星期前,一位朋友坐下来用Git辅导我.这真的很有帮助,我不记得它的60%.但是,我的Mac终端会记住命令的历史记录,这将填补我忘记的大部分内容.
一切都在那里.我可以按'向上'来循环历史.有没有办法将其转储到文件中?
我正在iPad模拟器中创建一些临时文件.要测试我的文件创建,我创建文件然后再读回来.以下是一些显示此代码的代码:
-(NSString *) writeToTempFile:(UIImage*) image{
NSString *path = [self createTemporaryFile];
NSLog(@"path: %@", path);
NSData *data = UIImageJPEGRepresentation(image, 1);
[data writeToFile:path atomically:YES];
free(data);
return path;
}
-(UIImage *) readTempFile:(NSString *) path{
NSData *data = [[NSData alloc] initWithContentsOfFile:path];
UIImage *image = [[UIImage alloc] initWithData:data];
return image;
}
Run Code Online (Sandbox Code Playgroud)
在最终函数将UIImage写入相册之前,我会一个接一个地调用这些方法.
UIImageWriteToSavedPhotosAlbum(image2, self, nil, nil);
Run Code Online (Sandbox Code Playgroud)
问题是,这总是在第三次执行时崩溃我的应用程序.第一次和第二次成功完成所有这些并存储到相册.第三次它崩溃回家.有任何想法吗?