小编Gov*_*van的帖子

如何在Eclipse启动时禁用"初始化Java工具"?

在我们的Eclipse插件应用程序中,Eclipse启动时需要很长时间,用户在应用程序的左下角看到"Initialize Java tooling"消息.因为我们的用户与java没有任何关系,我想知道是否可以禁用Initialize Java工具.

另一个问题:什么是Initialize Java工具?

java eclipse eclipse-pde eclipse-plugin eclipse-rcp

24
推荐指数
4
解决办法
5万
查看次数

在c ++()或{}中委托构造函数

我用以下代码阅读了Stroustrup的这个链接:

class X {
        int a;
    public:
        X(int x) { if (0<x && x<=max) a=x; else throw bad_X(x); }
        X() :X{42} { }
        X(string s) :X{lexical_cast<int>(s)} { }
        // ...
    };
Run Code Online (Sandbox Code Playgroud)

我的问题是关于这条线:

X() X{42}{}

括号和大括号之间有什么区别吗?
如果没有差异,我可以在其他函数调用中使用大括号吗?或者只是在构造函数委托中?最后为什么我们应该有这两种语法?这有点暧昧.

c++ constructor delegation c++11

15
推荐指数
2
解决办法
1万
查看次数

有没有必要在c ++ 11中定义只移动对象?

我之前有一个关于使用unique-ptrs的问题.我得到这个答案,建议使用仅移动对象.我定义了一个类如下:

class B {
    const string objName;
public:

    B ( B && ) = default;
    B &  operator= ( B && ) = default;
    B ( const B & ) = delete;
    B & operator= ( const B & ) = delete;

    B(const string & name) :
            objName(name) {

    }

    virtual ~B();

    const string name() const { return objName;};
}
Run Code Online (Sandbox Code Playgroud)

我用这句话打电话给B:

class A {
A(){}
void take(B b);
}

A a; 
B b("test");
cout<<b.name();
a.take(std::move(b));
cout<<b.name();
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 即使我已经默认了移动构造函数,我也不能写a.take(b)并且我正在编译错误.我理解复制constrctor已被删除但似乎逻辑选择是在默认情况下使用move构造函数而不需要像这样编写std …

c++ smart-pointers std pass-by-value c++11

8
推荐指数
1
解决办法
4205
查看次数

为 TeamCity 配置 Java 版本

我们已经在 OpenSuse 机器上安装了 TeamCity。TeamCity 的版本是 9.1.3。

我已经在服务器上安装了 JDK 1.8,但我没有将它用作默认 Java。我想更新每个代理以使用新的 JDK(版本 8)构建,如果所有代理的更新成功,那么我将尝试为整个系统升级 JDK。

我找不到一种简单的方法来运行具有特定 JDK 版本的代理或项目。我习惯使用 Jenkins,在那里使用不同的 JDK 进行构建非常容易。

我查看了 Team city 文档,但找不到任何真正的说明,我们如何为项目或代理使用特定的 Java 版本。

有什么帮助吗?

java teamcity jvm jetbrains-ide teamcity-9.0

6
推荐指数
1
解决办法
9539
查看次数

是否可以在P4Eclipse中更改P4TICKET?

我最近安装了Eclipse Juno,之后我从这个存储库安装了p4Eclipse 4.2插件:http://www.perforce.com/downloads/http/p4-eclipse/install/4.2

然后我尝试创建一个新的perforce连接.我输入了服务器名称和用户名和密码.但点击下一步时收到错误消息:

com.perforce.p4java.exception.ConfigException:java.io.FileNotFoundException:\ p4tickets.txt(访问被拒绝)

阅读P4Eclipse帮助我理解,因为我没有定义用户环境变量P4TICKETS,P4Eclipse试图自己定义它.在帮助中已经提到如果未明确设置值,则将为Windows定义为%USERPROFILE%\ p4tickets.txt,并将所有其他平台定义为$ HOME/.p4tickets

似乎P4Eclipse已经为其他平台配置了,因此它试图找到不允许的文件.当我使用值%USERPROFILE%\ p4tickets.txt定义用户环境变量P4TICKETS时,它工作正常.问题是我们有很多客户端,我不想为所有客户端定义环境变量.所以我想知道是否有一套为Windows平台配置P4Eclipse或在eclipse中定义P4TICKETS而不是环境变量!

eclipse perforce p4eclipse

5
推荐指数
1
解决办法
1658
查看次数

通过属性值从向量中删除对象的 unique_ptr

我有一个具有这三个功能的 Holder 对象

unique_ptr<Object> Holder::remove(string objName){
    std::vector<unique_ptr<Object>>::iterator object = 
            find_if(objects.begin(), objects.end(),
            [&](unique_ptr<Object> & obj){ return obj->name() == objName;}
     );
    objects.erase(std::remove(objects.begin(), objects.end(), *object));
    return std::move(*object);
}

vector<unique_ptr<Object>> const& Holder::getContent() const {
    return this->objects;
}

void Holder::add(unique_ptr<Object> objPtr) {
    this->objects.push_back(move(objPtr));
}
Run Code Online (Sandbox Code Playgroud)

我写了一个 CPPunit 测试如下:

void HolderTest::removeObject() {
    Holder holder("bag");
    unique_ptr<Object> ringPtr(new Object("a"));
    holder.add(move(ringPtr));

    unique_ptr<Object> swordPtr(new Object("b"));
    holder.add(move(swordPtr));

    holder.remove("a");
    vector<unique_ptr<Object>> const& objects = holder.getContent();
    CPPUNIT_ASSERT(objects.size() == 1);
}
Run Code Online (Sandbox Code Playgroud)

这个测试毫无问题地通过,但对我来说很奇怪的是,如果我添加以下行:

const std::string name = objects[0].get()->name();
CPPUNIT_ASSERT_EQUALS("b", name);
Run Code Online (Sandbox Code Playgroud)

然后测试在没有任何消息的情况下崩溃。我在另一个测试中编写了这一行而没有调用 remove 并且它没有任何问题。如果我将向量大小的值更改为 2 或 0 CPPUNIT_ASSERT(objects.size() …

c++ smart-pointers vector unique-ptr c++11

5
推荐指数
1
解决办法
6802
查看次数

当比较器返回0时,java 8中的Collections.sort不能用作java 6

最近我将我们的应用程序jdk从Java 6更新为Java 8,但仍将源语言级别保持为Java 6.更改后,我们的一个单元测试失败了.我注意到LinkedList的Collections.sort在Java 8和Java 6中的工作方式不同.即使我是JDk 1.8的Source Level java 8,我也会得到相同的不同行为.要重新创建问题:定义下面的枚举:

public enum Weight {
    A(1), B(0), C(0), D(0), E(2);

    public int getWeight() {
        return weight;
    }

    private int weight;

    Weight(int weight) {

        this.weight = weight;
    }

    @Override
    public String toString() {
       return  name() + '(' + weight + ')';
    }
}
Run Code Online (Sandbox Code Playgroud)

和一个主类如下:

public class Main {

    public static void main(String[] args) {
      List<Weight> weightList = new LinkedList<Weight>();
      weightList.add(Weight.A);
      weightList.add(Weight.B);
      weightList.add(Weight.C);
      weightList.add(Weight.D);
      weightList.add(Weight.E);

        Collections.sort(weightList, new Comparator<Weight>() {
            @Override
            public int compare(Weight …
Run Code Online (Sandbox Code Playgroud)

java sorting collections comparator java-8

5
推荐指数
3
解决办法
2594
查看次数

是否有理由基于 xsd:token 或 xsd:string 定义类型

我正在处理许多 xsd 文件。我注意到有几种基于 xsd:token 和 xsd:string 的类型定义,没有任何限制。例如

<xsd:complexType name="BaseString">
    <xsd:simpleContent>
        <xsd:extension base="xsd:token"/>
    </xsd:simpleContent>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)

我想知道这样的定义是否有理由。为什么不使用 xsd:token 或 xsd:string 而不是 BaseString 类型?任何想法?

xml schema xsd

4
推荐指数
1
解决办法
1452
查看次数

我可以在eclipse中定义一个显示html文件的视图吗?

我想知道是否有办法在eclipse中定义一个可以呈现和显示html文件的视图,或者用其他词来定义一个像浏览器一样工作的视图!我的意思是一个eclipse插件的视图.

例如,如果我可以定义基于org.eclipse.swt.browser的浏览器并将其关联到viewcontentprovider?

我不想在eclipse编辑器中打开一个html文件.我正在编写一个eclipse插件,我想在视图中打开一些html表单或xforms,而不是eclipse内部Web浏览器或外部Web浏览器.

html java browser eclipse eclipse-plugin

3
推荐指数
1
解决办法
3365
查看次数

Java中是否有类似C#Task的东西?

我正在尝试学习C#!我对编程语言之间的Java最熟悉!刚才我正试图了解TaskTaskJava中有类似的东西吗?

Task的和线程之间有什么区别?Task线程不能提供什么功能?基本上为什么我们需要Task

c# java concurrency

3
推荐指数
2
解决办法
6549
查看次数