在运行maven 3.0.3的Redhat系统上,正在使用时间戳而不是-SNAPSHOT.jar结尾下载某些工件.
a-2.3.0-20140206.210030-51.jar
b-2.3.0-20140206.205829-51.jar
Run Code Online (Sandbox Code Playgroud)
等等
但是,在运行maven 3.0.3的Ubuntu系统上,相同的下载工件有-SNAPSHOT.jar结尾.
a-2.3.0-SNAPSHOT.jar
b-2.3.0-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)
settings.xml文件是相同的.在~/.m2/repository已经吹散.回购是完全相同的.
我错过了什么?
我试图了解如何在调用后完全释放内存strtok().我在这里阅读了大部分已回答的问题,似乎没有一个问题可以解决我的困惑.如果这是一个副本,请随时指出我回答我的问题的方向
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char * aliteral = "Hello/world/fine/you";
char * allocatedstring;
char * token;
int i=0;
allocatedstring=(char *) malloc(sizeof(allocatedstring)*21);
allocatedstring=strcpy(allocatedstring,aliteral);
token = strtok(allocatedstring, "/");
token = strtok(NULL, "/");
token = strtok(NULL, "/");
token = strtok(NULL, "/");
printf("%s\n",allocatedstring);
printf("%s\n",token);
free(allocatedstring);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
allocatedstring在这里释放只会将字符串释放到\0替换strtok分隔符的第一个字符.所以它只会在"你好"之前清除.我检查了使用eclipse调试器并监视内存地址.
我如何清除剩下的部分?我尝试了两件事,有一个额外的指针指向allocatestring的开始并释放(没有工作)并在调用后释放令牌strtok()(也没有工作)
那么如何清理allocatedstring现在之间\0的部分呢?
编辑:为了澄清,看到eclipse调试器中的内存地址块,我在最初通过调用分配的内存块中看到字符串"HELLO WORLD FINE YOU" malloc.在调用之后free(),包含"HELLO"和第一个的块\0变成了乱码,但其余的块保留了字符"FINE YOU".我认为这意味着他们没有被释放.
我有很多自定义异常,我在代码中的特定情况下抛出,我想在方法的底部有一个catch块来处理它们.
所有异常都是Exception类CribbageException的子代,所以我想要:
public void myMethod(){
if (whatever){
throw new CardException();
}
if (something else){
throw new InvalidCardException();
}
if (scenario 3){
throw new TwoCardsException();
}
catch (CribbageException e) {
System.out.println(e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到一个没有尝试错误的捕获.
有没有办法使用这种类型的异常处理?