我正在尝试为Netbeans 7.1创建一个可分发的模块,它将包含许可证模板和一些java模板.我在Netbean的支持下遵循教程,但他们只讨论如何创建HTML模板.如果我创建一个用作模板的java文件,构建器将尝试编译模板并失败.
我的项目看起来像这样:
Netbeans Code Template Module
+ org.myorg.nbcodetemplates
- Bundle.properties
+ org.myorg.nbcodetemplates.javaclass
- JavaClass.java
- JavaClassDescription.html
- package-info.java
+ org.myorg.nbcodetemplates.license
- LicenseDescription.html
- license-myorg.txt
- package-info.java
Run Code Online (Sandbox Code Playgroud)
如何让构建器跳过Java模板 - 或者我应该在这里做些什么?如果我离开名为JavaClass.html的JavaClass.java并以这种方式构建模块似乎很高兴,但当我尝试通过New File向导将其添加到项目时它会显示为HTML文件.
无论如何我可以向删除器发送参数std::shared_ptr
吗?
感觉像是:
std::shared_ptr<A> myA( a, myDeleter(a, 5) );
Run Code Online (Sandbox Code Playgroud)
myDeleter
这个签名在哪里:
void myDeleter(A* a, int i)
Run Code Online (Sandbox Code Playgroud)
(显然上面的语法是错误的,但只是为了强调我需要我的删除器来获取额外的参数.)
我正在尝试使用打印一些浮点数printf
.例如:
int main()
{
printf("%.1f",76.75);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:76.8
我对结果有一些疑问.
首先,为什么不打印76.7?
第二,它是如何围绕这个数字的呢?
我在Visual Studio 2010 Professional的Edit-> Intellisense选项卡下的"Toggle Completion Mode"出现问题.图片很好地描述了它.
完成模式在C#中正常工作.请帮忙.
先感谢您!
我有一个简单的测试程序(错误检查已删除):
#include <iostream>
#include <iomanip>
#include <sstream>
#include <string>
int main() {
std::string line;
while(std::cin >> line) {
int value;
std::stringstream stream(line);
stream >> std::setbase(0) >> value;
std::cout << "You typed: " << value << std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)
哪个适用于依赖于前缀的整数解析.它会解析字符串开头"0x"
或"0X"
十六进制和字符串开始'0'
为八进制.我在使用和看过的几个资源中对此进行了解释.然而,我无法找到的是C++标准中的一个指示,即它可以保证有效.
C标准strtol
中的第7.20.1.4.3节说(6.4.4.1是整数常量的语法)我想抽象运算符在引擎盖下使用它:
如果base的值为零,则主题序列的预期形式是如6.4.4.1中所述的整数常量的形式,可选地前面加上或减号,但不包括整数suf fi x.
这适用于我尝试过的几个GCC版本,但一般使用它是否安全?
我遇到了git-svn dcommits的问题,使得git存储库无法跟踪哪些提交.
我尝试确保git中的master分支始终跟随SVN存储库中的trunk.所以,每当我工作,我都在一个主题分支.这是我的情景:
在主题分支中工作一段时间
git checkout -b my-topic
git commit -m "blah blah blah"
Run Code Online (Sandbox Code Playgroud)
然后我决定将我的分支合并回主人
git checkout master
git svn rebase #get any changes in svn
git rebase master my-topic
git merge my-topic --ff-only
Run Code Online (Sandbox Code Playgroud)
直到这里,一切都进展顺利.我现在有主人和我的主题加速并指向相同的提交,整个历史记录如下所示:
A -- B -- C - master + my-topic
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做的时候
git svn dcommit
Run Code Online (Sandbox Code Playgroud)
我最终得到了一个看起来像这样的树(B和C是我最初对该主题做出的提交):
-- B -- C - my-topic
/
A -- B -- C - master + remotes/trunk
Run Code Online (Sandbox Code Playgroud)
看起来在dcommit过程中,git将提交推送到SVN,然后在master上重放它们.我认为问题是他们得到不同的提交者信息.我正在使用tortoise plink和SSH密钥登录svn.
在未被推送到SVN的git存储库中提交的提交者信息如下:
Collin Hockey <chockey@xyz.com>
Run Code Online (Sandbox Code Playgroud)
已经推送到svn存储库的提交有这个:
chockey <chockey@6206317d-b652-48a9-a948-4036602fc523>
Run Code Online (Sandbox Code Playgroud)
有什么办法可以防止这些分支分裂吗?我可以通过说来解决它
git rebase master my-topic
Run Code Online (Sandbox Code Playgroud)
再次,但我觉得这应该是不必要的.这个问题的主要问题是,一旦分支的更改被推送到SVN,git就不再认为分支已被合并到任何地方.删除不再需要的旧分支会让人感到困惑.
我试图通过嵌入Jetty为我的应用程序设置一个简单的Web服务.我想提供两种不同的Web服务,一种简单的HTTP服务器,它只提供静态内容(最终将是一个GWT应用程序)和一个可以为应用程序吐出JSON状态消息的自定义servlet.
我的分发文件夹结构如下所示:
+ dist/
- MyApp.jar
+ lib/
+ html/
- index.html
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止配置嵌入式服务器的方法.我在访问时正确地从我的自定义servlet获取测试输出http://localhost/data/
,但我似乎无法让DefaultServlet找到我的index.html文件.
public Webserver(int port) {
server = new Server(port);
ServletContextHandler context = new ServletContextHandler();
context.setResourceBase("./html/");
server.setHandler(context);
JsonDataApiServlet dataServlet = new JsonDataApiServlet();
DefaultServlet staticServlet = new DefaultServlet();
context.addServlet(new ServletHolder(dataServlet), "/data/*");
context.addServlet(new ServletHolder(staticServlet), "/*");
}
Run Code Online (Sandbox Code Playgroud)
对于将Jetty嵌入到东西中的人来说,这似乎是一项普遍的任务.我是否在正确的轨道上?
编辑
原来这个问题是由于误解了Jetty内部相对路径的计算方式.我是从dist文件夹上方的一个文件夹中运行它,使用java -jar dist\MyApp.jar
,而Jetty正在寻找dist\..\html
而不是正确的dist\html
.从dist文件夹内运行jar可以解决问题.我将回答我是如何工作的,而不必从dist目录中运行.
我正在尝试阅读看起来像这样的文本文件:
Date, StartTime, EndTime
6/8/14, 1832, 1903
6/8/14, 1912, 1918
6/9/14, 1703, 1708
6/9/14, 1713, 1750
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的:
g = open('Observed_closure_info.txt', 'r')
closure_date=[]
closure_starttime=[]
closure_endtime=[]
file_data1 = g.readlines()
for line in file_data1[1:]:
data1=line.split(', ')
closure_date.append(str(data1[0]))
closure_starttime.append(str(data1[1]))
closure_endtime.append(str(data1[2]))
Run Code Online (Sandbox Code Playgroud)
我这样做是为了一个与此文件非常相似的前一个文件,一切正常.但是,此文件未正确读取.首先它给了我一个错误"列表索引超出范围" closure_starttime.append(str(data1[1]))
,当我要求它打印它对data1或closure_date的内容时,它给了我类似的东西
['\x006\x00/\x008\x00/\x001\x004\x00,\x00 \x001\x008\x003\x002\x00,\x00 \x001\x009\x000\x003\x00\r\x00\n']
Run Code Online (Sandbox Code Playgroud)
我已经尝试重写文本文件,以防有关该特定文件有任何损坏,它仍然做同样的事情.我不确定为什么,因为上次这个工作正常.
有什么建议?谢谢!
谁能告诉我这两个命令之间的区别:
git merge --squash
Run Code Online (Sandbox Code Playgroud)
和
git merge --no-ff
Run Code Online (Sandbox Code Playgroud) 我正在努力使我的Java应用程序易于部署到其他计算机,我正在写一个蚂蚁脚本来做到这一点,这很好.
我在加载jar中清单文件中指定的类路径中列出的资源时遇到问题.
文件夹结构如下所示:
/MyProgram.jar
/lib/<dependencies>
/config/configuration.xml
Run Code Online (Sandbox Code Playgroud)
我不能为我的生活使用ClassLoader访问configuration.xml文件.它与所有依赖项一起在清单文件的Class-Path条目中明确列出.
我尝试了以下的许多变种:
this.xml = Thread.currentThread().getContextClassLoader()
.getResourceAsStream(xmlName);
this.xml = this.getClass().getResourceAsStream(xmlName);
Run Code Online (Sandbox Code Playgroud)
使用xmlName作为以下所有值的字符串:
"config/configuration.xml"
"configuration.xml"
"config.configuration.xml"
Run Code Online (Sandbox Code Playgroud)
与此相关,我在config目录中也有一个log4j.properties文件.我如何让log4j拿起它?其他引用说它只需要在类路径中,它也在jar的manifest文件中明确命名.有人能指出我正确的方向吗?
更新:
以下是Class-Path中的实际条目:
Class-Path: <snip dependencies> config/configuration.xml config/log4j.properties
Run Code Online (Sandbox Code Playgroud)