小编jha*_*sse的帖子

告诉eclipse重新加载环境变量

我使用的设置环境变量.bat文件setsetx由我的Java应用程序执行.

但是下次运行我的应用程序时,环境变量又回到了原来的值 - 我必须重新启动Eclipse才能使更改生效.

每次运行应用程序时,如何告诉eclipse重新加载环境变量?

java eclipse windows batch-file environment-variables

7
推荐指数
2
解决办法
4703
查看次数

在运行时加载JDBC驱动程序

我正在使用以下代码加载驱动程序类:

public class DriverLoader extends URLClassLoader {

    private DriverLoader(URL[] urls) {
        super(urls);
        File driverFolder = new File("driver");
        File[] files = driverFolder.listFiles();
        for (File file : files) {
            try {
                addURL(file.toURI().toURL());
            } catch (MalformedURLException e) {
            }
        }
    }


    private static DriverLoader driverLoader;


    public static void load(String driverClassName) throws ClassNotFoundException {
        try {
            Class.forName(driverClassName);
        } catch (ClassNotFoundException ex) {
            if (driverLoader == null) {
                URL urls[] = {};
                driverLoader = new DriverLoader(urls);
            }
            driverLoader.loadClass(driverClassName);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然类加载很好但我无法建立数据库连接(找不到合适的驱动程序...)无论我尝试哪个驱动程序.

我假设这是因为我没有使用Class.forName加载驱动程序类(由于我使用自己的ClassLoader,因此无效).我怎样才能解决这个问题?

java jar jdbc classloader

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

命令libtool失败,退出代码为1

我已经创建了一个静态库C++项目,但是当我编译时,我收到以下错误:

XCode错误消息

XCode 4.1(Lion)没有向我显示更多信息.我正在使用clang.

我怎样才能找出问题所在?

xcode xcode4.1

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

CMake 为 UWP 生成时无法获取 VCTargetsPath 的值

我正在尝试使用 CMake 构建通用 Windows 应用程序,但出现以下构建错误(已安装最新的 Visual Studio 2019 和 Windows 10 SDK):

\n\n
\xe2\x80\xba cmake -B. -H<my source dir> -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0\n-- Building for: Visual Studio 16 2019\n-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.\nCMake Error at CMakeLists.txt:3 (project):\n  Failed to run MSBuild command:\n\n    C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe\n\n  to get the value of VCTargetsPath:\n\n    Microsoft (R) Build Engine version 16.5.1+4616136f8 for .NET Framework\n    Copyright (C) Microsoft Corporation. All rights reserved.\n\n    Build started 5/16/2020 9:52:00 PM.\n    Project "C:\\test\\CMakeFiles\\3.17.2\\VCTargetsPath.vcxproj" on …
Run Code Online (Sandbox Code Playgroud)

c++ cmake windows-store-apps uwp

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

如何在命令行(OS X)上链接OpenAL

我正在尝试编译一个在Mac OS X 10.7上使用OpenAL的项目.如果我将使用XCode,我可以链接OpenAL.framework,但在目录中

/System/Library/Frameworks/OpenAL.framework/
Run Code Online (Sandbox Code Playgroud)

没有名为'Libraries'的子目录.那么我应该链接什么呢?

macos openal clang osx-lion

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

为什么std :: string不是模板常量参数的有效类型?

我正在尝试创建一个用户可以在地图中存储不同类型数据的类.我为bool,int和std :: string创建了一个映射,并创建了模板函数,这样我就不必为每种类型重写get和set函数.

这是我的代码的最小版本:

#include <map>
#include <string>
#include <stdexcept>
#include <iostream>

class Options {
public:
    template<class T>
    void Set(const std::string& name, const T& value) {
        GetMap<T>()[name] = value;
    }
    template<class T>
    T Get(const std::string& name) {
        auto it = GetMap<T>().find(name);
        if(it == GetMap<T>().end()) {
            throw std::runtime_error(name + " not found");
        }
        return it->second;
    }
private:
    std::map<std::string, int> ints_;
    std::map<std::string, std::string> strings_;
    std::map<std::string, bool> bools_;

    template<class T>
    std::map<std::string, T>& GetMap();
    template<bool>
    std::map<std::string, bool>& GetMap() {
        return bools_;
    }
    template<std::string> // …
Run Code Online (Sandbox Code Playgroud)

c++ templates

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

无法使用MinGW 4.5.2链接Boost.Thread 1.46.1

我使用以下方法构建了boost:

bjam --toolset=gcc --with-thread stage
Run Code Online (Sandbox Code Playgroud)

每当我试图实际使用Boost.Thread时我会得到未定义的引用,尽管我链接它.其他Boost库(如Regex或System)不会发生这种情况.

>g++ main.cpp -I. -L. -lboost_thread-mgw45-mt-1_46_1
C:\Users\jhasse\AppData\Local\Temp\ccjYfDox.o:main.cpp:(.text+0xf): undefined reference to `_imp___ZN5boost6thread20hardware_concurrencyEv'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

示例程序:

#include <boost/thread.hpp>
#include <iostream>

int main()
{
    std::cout << boost::thread::hardware_concurrency() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

c++ boost mingw boost-thread

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

使用XCode 4.1在Mac OS X Lion上找不到OpenAL的AL/al.h.

我在XCode中创建了一个项目并添加了OpenAL框架.当我尝试包含它时,编译器仍然无法找到AL/al.h.

我在哪里添加OpenAL的include目录?

编辑:对不起,我忘了添加:我正在使用C/C++

c++ xcode openal

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

无法删除外键(Oracle)

我正在尝试删除表的所有外键.首先,我使用meta.getExportedKeys(null, null, table);和获取这些键的所有名称rs.getString("FK_NAME").

但是当我尝试删除此密钥时使用:

ALTER TABLE tablename DROP CONSTRAINT fkname
Run Code Online (Sandbox Code Playgroud)

它只适用于某些键.有时我会得到:

ORA-02443: Cannot drop constraint - nonexistent constraint
Run Code Online (Sandbox Code Playgroud)

但外键确实存在.我究竟做错了什么?

oracle constraints jdbc foreign-keys

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

通过 {fmt} 和 ostream 打印命名空间中的类型

这个答案提到了如何包含<fmt/ostream.h>让 {fmt} 识别的 ostream-printable 类型。我注意到当类型位于命名空间中时它不起作用:

#include <fmt/format.h>
#include <fmt/ostream.h>

namespace foo {
  struct A {};
}

std::ostream& operator<<(std::ostream& os, const foo::A& a)
{
  return os << "A!";
}

int main()
{
  fmt::print("{}\n", foo::A{});
}
Run Code Online (Sandbox Code Playgroud)

#include <fmt/ostream.h>对于没有命名空间的类型,这将再次导致旧错误(在包含 之前):

fmt/core.h:1422:3: error: static_assert failed due to requirement 'fmt::formattable<foo::A>()' "Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt"
  static_assert(
  ^
fmt/core.h:1438:10: note: in instantiation of function template specialization 'fmt::detail::check<foo::A>' requested here
  return check<T>(arg_mapper<Context>().map(val));
         ^
fmt/core.h:1587:23: …
Run Code Online (Sandbox Code Playgroud)

c++ fmt

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